最新PyCharm基本使用(3)

您所在的位置:网站首页 pycharm代码缩进 最新PyCharm基本使用(3)

最新PyCharm基本使用(3)

2023-11-18 11:06| 来源: 网络整理| 查看: 265

目录 六、PyCharm中代码的填充、补充、检查、分析、清理等操作 七、PyCharm中的重命名、更改签名、提取、引入、内联(复原)、安全删除、调整、转换等重构操作

六、PyCharm中代码的填充、补充、检查、分析、清理等操作

Code(编码)菜单

        PyCharm的Code菜单的选项如图6-1所示,是PyCharm中代码自动填充、补充、检查、分析、清理、展开、折叠、格式规范、缩进、优化导入、移动等编码操作,菜单中有代码操作选项及其快捷键。PyCharm根据上下文感知,能自动填充、补充、检查、分析等,提高我们编程速度,且提高代码质量。

图6-1  PyCharm的Code菜单

Override Methods

       重写方法。鼠标放在类中的任何位置,选择该项后,重写(重载)父类的方法,父类的方法在子类中生成,然后在生成的方法中,我们可以写入代码。

Implement Methods

       实现方法。选择该项能填充方法的内容,使得实现方法的功能。

Generate

     生成。该选项根据光标位置对应弹出菜单,菜单集合了Override Methods、Implement Methods、Test、或Copyright等选项。

Code Completion

       代码完成。选择该选项弹出的菜单中的选项,能自动补充代码相关的内容,加快我们写代码的速度。比如:菜单中Basic可以帮我们填入有关类、方法和关键字的名称。

Inspect Code

       检查代码。根据指定的检查范围进行检查,并显示该范围内代码存在的问题。检查代码是依据File→Settings→ Editor → Inspections中提供的相关策略进行检查。

Code Cleanup

       代码清理。该选项是根据指定的范围,在该范围中找到可能有问题的代码片段并立即自动修复它们。

Analyze Code

      分析代码。选择该选项的菜单中的选项,可以完成特定代码分析,比如:Run Inspection by Name,可以根据名称指定一个检查(名词,一般是一个文件),并用这个检查(名词)来检查(动词)我们指定范围内的代码,也即选择该选项后,在弹出窗口先确定一个检查(名词),确定后再在新窗口中指定范围,然后确定后就可以进行代码审查。

Analyze Stack Trace or Thread Dump

       分析堆栈跟踪或线程转储。像死锁(Deadlock)、死机等异常,这些异常没有帮助您导航到源代码中相应位置的链接,使用PyCharm,我们可以复制异常产生的堆栈轨迹,或复制完整的线程转储,将其粘贴到选择该选项弹出的Stack trace Analyzer窗口,确定后可以导航到相应的源代码。   

       Stack Trace(堆栈跟踪,堆栈轨迹),异常发生时会产生一个堆栈轨迹。其中,栈(stack),又名堆栈,是一种只能在一端(栈顶)进行插入和删除操作的特殊线性表(在内存中为动态内存区域),栈一般存放函数的地址、对象的引用地址等,堆栈追踪(堆栈轨迹,stack trace)是对程序运行过程的活动记录的描述。

      Thread Dump(线程转储) 包含的内容:线程,线程运行状态、标识和调用的堆栈,堆栈包含完整的类名及所执行的方法,源代码的行数等。线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,多个线程并行可以执行不同的任务。

       死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。

Insert Live Template

       插入活动模版。选择该选项可在光标位置根据活动模板创建代码构造(比如:某个固定的代码语句)。选择该选项会弹出菜单,菜单中是已经存在的Live Template(活动模版),选择某个模板,光标位置会自动生成这个模板代表的内容。

      该选项会弹出菜单中的模版一般是默认自带模版,我们也可以在File→Settings→ Editor → Live Template中可以根据自己的需要来创建模版,比如:在File→Settings→ Editor → Live Template弹出的窗口选中Python模版组(模板群),点击该窗口右侧加号(+),里面有Live Template和Template Group(创建模版组,模版组名称下面可以放多个模版)两个选项,选择Live Template,窗口下面输入Abbreviation(模版的缩写,也即模版名称),Description(模版的描述),Template text(模版文本,也即模版内容),确定后即可自定义创建一个Python的新模版。

       注意,这里的Live Template选项与File→Save File as Template是不同的概念。

Save as Live Template

       另存为活动模版。先选择代码的某个内容,然后选择该选项能创建一个Live Template(活动模版),实际也是默认在File→Settings→ Editor → Live Template中user模板组下创建模版。

Surround With

       环绕,能创造代码构造。光标放在某行代码,选择该选项弹出菜单的选项,可以在该行代码周围生成对应的代码语句,比如:if语句、while语句、注释等。该选项弹出菜单中的选项是Pycharm根据该行代码上下文来确定的,当该行代码不能产生环绕时,提示Couldn't find Surround With variants applicable to the current context(找不到适用于当前上下文的环绕变体)。

Unwrap/Remove

       展开或移除,从封闭语句中快速展开或提取表达式。比如:光标放在if体内某个位置,选择该项后,会自动选中上下同一层次的代码语句,并弹出确定Unwrap/Remove的提示窗口(窗口的选项会根据被选中语句的上下文生成),确定后会自动提取出这些被选择的语句,并去掉了if条件。该选项操作比较适合if、while、for等控制结构的语句。

Folding

       折叠。光标放在某个位置或选中某个区域,选择该选项的菜单中的选项,可以展开和折叠对应的代码。比如:选择菜单中的Collapse,会折叠隐藏相关代码,选择菜单中的Expand,或展开相关代码。

Comment with Line Comment

        行注释,选择该选项后,光标所在行的开头会自动增加注释符号,该行成为注释行。

Comment with Block Comment

        块注释,多行注释,这些多行变为注释行。

Reformat Code

       重新格式化代码(代码格式规范),自动调整、对齐、规范代码,使得代码空格间隔更规范,增强可读性。

Reformat File

       可以对整个文件的代码进行格式化。能对整个文件的代码进行自动调整、对齐、规范、清理等等,使得整个文件代码空格间隔更规范,增强可读性。该选项的菜单中还可以进行格式化的一些选项设置,比如:勾选该选项的菜单中Optimize Imports,可以去掉未使用的import语句,这里的Optimize Imports与下面即将讲到的Optimize Imports选项的效果一样。

Auto-Indent Lines

       自动缩进。选择该项,光标所在的行或选中的代码会根据上下文向左或向右自动缩进。

Optimize Imports

       优化导入。可以去掉文件中未使用、或重复的导入,而且还可以组织(规划)导入语句。

Rearrange Code

       重排代码,可根据排列规则重新排列代码。Python不支持此操作。

Move Statement Down

       向下移动语句。鼠标所在位置对应的行或代码块会向下移动。比如:在类里面,光标在定义的方法名的位置,选择该项后,该方法整体下移,与类中下面的方法交换位置。

Move Statement Up

       向上移动语句,与上面Move Statement Down相反。

Move Element Left,Move Element Right

       向左移动光标位置的元素,向右移动光标位置的元素。

Move Line Down,Move Line Up

       向下移动一行,向上移动一行,类似Move Statement Down,Move Statement Up,但只能移动一行。

Update Copyright

       更新版权。

七、PyCharm中的重命名、更改签名、提取、引入、内联(复原)、安全删除、调整、转换等重构操作

Refactor(重构)菜单

       PyCharm的Refactor菜单的选项如图7-1所示,Refactor菜单的选项由当前上下文决定的,是PyCharm中重命名、更改签名、提取、引入、内联、安全删除、调整、转换等重构操作,菜单中有重构操作选项及其快捷键。重构,重新改变、改进。代码重构一般是在不创建新功能的情况下改进源代码,重构有助于保持代码的稳固和易于维护。

 图7-1  PyCharm的Refactor菜单

Refactor This

       重构,重新改变、改进。代码重构是在不创建新功能的情况下改进源代码,重构有助于保持代码的稳固和易于维护。光标选择(或悬停在)要重构的符号或代码片段,选择该选项,弹出重构菜单的选项(菜单选项由光标所在位置的上下文决定),比如:对类或方法重命名(Rename,用法同下面讲到的Rename一样)、Change Signature(更改签名,用法同下)、引入变量(Introduce Variable)、引入常数(Introduce Constant)等。若不能重构,会提示Cannot perform refactoring using the selected element(无法使用所选元素(选项)执行重构)。

        该选项弹出菜单中的选项很多也是下面即将讲到的选项。

Rename

       对变量、函数、类、或方法等重命名,选择该选项弹出修改光标所在位置名称的窗口,有的注意选择修改范围(Scope),比如:修改类名时可以针对整个项目,也可以选择针对当前文件。

Change Signature

       更改签名,可以更改项目当前目录下文件中的函数名或方法名,或添加、删除、重新排序、重命名其参数,并且这个目录下所有文件中相同调用(包括继承)层次的也发生同样的改变,比如:项目当前目录中文件中的类AA中方法func,选择Change Signature,在弹出的菜单中改func方法名,当前文件中func方法会改名,而且在项目当前目录中所有文件,只要是有AA.func或继承调用中的func也都会改名。

       因此,该选项比较特殊,通过该选项时,要注意对其它文件的影响,该选项设置重构时,可以先进行Preview(预览),查看将对其它文件的改变。

Extract/Introduce

       提取(摘录)或引入,该选项根据光标的操作及上下文来确定提取(摘录)或引入。若光标未选中或选中某个名称,默认引入,若光标选中某个表达式,则是提取,比如:用光标选中某个表达式,再选择该选项弹出菜单中的Variable选项,则把这个表达式赋给一个新变量,且用这个新变量来引用(表示)这个表达式。若不能提取(摘录)或引入,会提示Cannot perform refactoring using the selected element(无法使用所选元素(选项)执行重构)。

       该选项弹出的菜单中主要有Variable(变量)、Constant(常量)、Field(字段,提供给计算机识别,类似变量这种指代作用,常用在数据库中)、Parameter(参数,比如:函数的参数)、Method(方法)、Superclass(超类,父类)等选项。

Inline

      内联,复原。内联重构,相当于上面Extract的逆操作,是方法或变量的提取(Extract)的逆操作。比如:鼠标放在变量或选中变量,然后选中该选项即可还原提取,也即恢复到提取前原来的表达。对方法进行内联重构,弹出的菜单中有Inline all invocations and remove the declaration 和Inline all invocations and keep the declaration两个选项,前者是内联所有调用并删除声明(定义的这个方法),后者是内联所有调用并保留声明(定义的这个方法)。

Move File

        移动当前文件到某个文件夹。

Copy File

         复制当前文件到某个文件夹。

Safe Delete

       安全删除。安全删除重构可以安全地删除文件。在PyCharm窗口左侧的Project项目展示栏中选中文件,然后选择该选项,提示是否安全删除该文件,该操作在删除时会检查是否存在外部使用,若存在引用,将打开“检测到的使用情况”方对话框。

Pull Members Up

       向上拉成员,该重构可以将类中的成员移动到超类(父类)。移动变量需要光标选中定义的变量,移动方法只需光标放到定义的方法的位置。

Pull Members Down

         下拉成员,该重构与Pull Members Up相反,可以将父类中的成员移动到子类。

Invert Boolean

       反转布尔值,该重构可以将布尔变量的值及其所有用法从True转换为False,反之亦然。光标放在变量位置,选择该选项即可实现。比如:原来:

def func(): c1 = True return c1

选该选项操作后:

def func(): c1 = False return not c1

Convert to Python Package

        把模块(module)转换为包(也可以叫着库),在PyCharm窗口左侧的Project项目展示栏中选中模块(比如:.py文件),选择该选项即可生成包。

Convert to Python Module

       把包转换为模块(module),是Convert to Python Package的逆操作,在PyCharm窗口左侧的Project项目展示栏中选中包,选择该选项即可生成模块。

最后,欢迎你点赞、收藏、关注!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3