PyDev for Eclipse 简介(2)

本文介绍了PyDev及其扩展PyDevExtensions提供的多种代码辅助功能,包括导入管理、文档字符串创建、异常处理等,帮助开发者提高Python开发效率。
  • PyDev 的 CA 功能
  1. Move import to global scope

以如下代码为例,将光标移至 import sys 后,启动快捷键 Ctrl+1 激活 CA,”Move import to global scope” 出现在标签中,按 Enter 应用此功能。如果不想应用该功能,可以按 Esc 键取消。

#!/usr/bin/python –usys.path.append(“./VirtualFS”)import sys

应用该功能后,import sys 被成功移至全局范围内,消除了之前的错误。改变后的代码如下。

#!/usr/bin/python –uimport syssys.path.append(“./VirtualFS”)
  1. Create docstring

Create docstring 功能可以自动为函数添加参数注解。将光标移至如下代码行,启动快捷键Ctrl+1 激活 CA,标签栏中出现 ”Make docstring”。

def __init__(self, dbUser, dbPswd, dbHost):

按 Enter 应用该功能后,自动为该函数添加了参数注解。

def __init__(self, dbUser, dbPswd, dbHost): ''' @param virtualOperator: @param database: @param hostname: @param workDir: '''
  1. Assign result to new local variable (or field)

CA 还提供一种功能能够将函数返回结果赋给新的内部变量。以函数 callMethod 为例,将光标移至 a.callMethod() 行激活 CA。

def method (self, a): a.callMethod()

选择 ”Assign to field(self, callMethod)” 或者 ”Assign to local(callMethod)”,可以将a.callMethod() 结果赋给新的内部变量 self.callMethod,改变后的代码如下。

def method (self, a): self.callMethod = a.callMethod()
  1. Assign parameters to attributes

在程序编辑过程中,如果需要把函数参数赋给变量,可以使用 CA 的 Assign parameters to attributes 功能自动完成这样的需求。将光标移至函数 m1 所在行,激活 CA。

class Foo(object): Def m1(self, a, b):

在标签栏中选择 ”Assign parameters to attributes”,自动生成两行代码将参数 a,b 赋给同名变量。

class Foo(object): def m1(self, a, b): self.a = a self.b = b
  1. Surround code with try..except or try..finally

对可能产生异常的代码,要进行异常捕获,通常使用 try..except 或者 try..finally 语句来捕获异常。选中一段代码 print usage,激活 CA 的 ” Surround code with try..except or try..finally”功能,可以自动对 print usage 进行异常捕获。

import sysdef method (self, usage): try: print usage except: raise

下面,再介绍 PyDev Extensions 包含的 CA 功能是如何被运用的。

  • PyDev Extension 的 CA 功能
  1. Make import for undefined token

以如下一段代码为例,xmlreader 未定义,语法分析出错。

class Test: def method(self): xmlreader

将鼠标移至出错行,启动快捷键 Ctrl+1 激活 CA,选择标签栏中的 ”Import xmlreader(xml.sax)”,自动生成一行代码 from xml.sax import xmlreader,语法错误消除。

from xml.sax import xmlreader class Test: def method(self): xmlreader
  1. Ignore error

仍以上述代码为例,由于 xmlreader 没有被定义,包含语法错误,在这一行激活 CA,选择 ”UndefinedVariable”,语法错误被忽略,xmlreader 后自动生成一行注释标明 ”#@UndefinedVariable”。

class Test: def method(self): xmlreader #@UndefinedVariable
  1. Don't analyze module

语法分析器可以帮助显示包含语法错误的代码,但在程序编辑过程中,有时候需要刻意取消对程序的语法分析,CA 的 Don't analyze module 提供了这样的功能。

将光标移至程序第一行,激活 CA,选择 ”@PydevCodeAnalysisIgnore”,自动生成一行代码 ”#@ PydevCodeAnalysisIgnore”,忽略对程序体的语法分析。

#@PydevCodeAnalysisIgnore class Test: def method(self): xmlreader
  1. Quick Outline

对特定的 Python 文件,Pydev Extensions 提供的 Quick Outline 能最简单快捷地获取该文件的组织结构,并能在该文件中方便地查询定位所需信息。

在 Pydev 透视图中,选择 Source -> Show Quick Outline,或者使用快捷键 Ctrl+O 启动该功能。

Python 文件的类、函数等组织架构便以树状形式被形象地展现出来。同时,Filter 提供了查询定位的功能,可以方便地查询所需信息并定位到相应的代码段。


图 8. Quick Outline
Quick Outline
  1. Globals Browser

Globals Browser 是 Pydev Extensions 提供的另外一种强大的查询定位功能。它可以查询定位整个工程内的一些定义和属性,包括:

    • 类定义
    • 方法定义
    • 全局变量
    • 类以及实例属性

通过三种方式可以启动该功能。

  • 在 Pydev 透视图中,从菜单栏中选择 Pydev -> Globals Browser。

图 9. 菜单栏启动 Globals Browser
菜单栏启动 Globals Browser
  • 在Pydev 透视图中,工具栏有如下的一个小图标,鼠标移至该图标上方,显示 ”Pydev: Globals Browser” 标注。点击该图标按钮,可以启动 Globals Browser 功能。

图 10. 工具栏启动 Globals Browser
工具栏启动 Globals Browser
  • 通过快捷键 Ctrl + Shift + T,可以快速启动 Globals Browser 功能。

在 Filter 中输入所要查询的定义、变量或者属性,Globals Browser 可以快速地定位到相应的代码段。


图 11. Globals Browser
Globals Browser
  1. Hierarchy View

当某个 python 文件包含多个类时,如何才能简单直观地了解各个类之间的依存关系?Hierarchy View 提供了这样的功能,它能将多个类之间的层次关系以树状结构直观地显示出来。

以一段 Python 代码为例,定义了 Super1, Super2, ToAnalyze 和 Sub1 四个类。在 Pydev透视图中,选择 Windows -> Show View -> Other,在弹出的 Show View 窗口中,选择 Pydev -> Hierarchy View。按快捷键 F4 激活 Hierarchy View,可以看到树状图中显示出了类间的层次关系。


图 12. 在 Hierarchy View 中显示类的层次关系
在 Hierarchy View 中显示类的层次关系

Hierarchy View 还支持以下四个功能:

  • 在层次图中,用鼠标单击某个类,图下方即显示出该类的方法。
  • 如果双击某个类、方法或者属性,则会调出源程序,进入对该类、方法或者属性的编辑状态。
  • 在 Hierarchy View 中,按住鼠标右键,并相左或向右移动鼠标,层次图则会相应地缩小或放大。
  • 在 Hierarchy View 中,按住鼠标左键移动鼠标,层次图则会被随意拖动到相应的位置。


PyDev for Eclipse 简介(2) - iechyu - iechyu的博客 PyDev for Eclipse 简介(2) - iechyu - iechyu的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值