本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008
全文介绍 PyCharm 编辑器中,文件类型模板和实时模板的自定义功能。是做课题、做练习、做项目经常要用到的。是一个实用功能的介绍。后续陆续发布、敬请关注。【原创】 大侠Ahcao https://blog.csdn.net/Ahcao2008/
在编程过程中,例如做课题、做练习、做项目等,经常要用到一些常用代码,例如,注释块、import
语句群,__main__
函数,等等。每次都敲这些代码、或者用复制粘贴是很繁琐的。
这里介绍,如何在PyCharm
中,进行模板的自定义。
模板的自定义,包括文件类型模板的自定义(如 .py
文件),常用 python 语句(也就是所谓实时模板)的自定义。
自定义的作用:一是适当提高编写代码的效率;二是减少出错,做到语句统一、规范、美观。
打开设置窗口,至少有以下三种方法,择其一即可:
1、在菜单栏打开(见图1的 ⑴和⑵)
2、右上角设置的工具栏小按钮(见图1的 ⑶和⑷)
3、按快捷键Ctrl + Alt + S
(这个取决于你的计算机上的热键定义是否与其它有冲突)
另外,请准备好,你准备想往模板里面加入什么样的一些内容(见图1的⑸)?
一般的建议内容有:
1、编辑标识、Coding代码
2、注释块
3、import 模块群
4、常用类体、函数体
5、main() 函数
下面会有详细的讲解。
图2、文件和代码模板
在打开的设置模板中,找到文件和代码模板。(见图2的 ⑴和⑵)
说明:PyCharm的设置面板内容非常丰富和庞大,要善于使用左上角的
搜索
功能。
你可以选择Python Script 标题名称,或者,点击上方的+
号,再新建名称。(见图2的 ⑶)
当然,熟练之后,你可以定义其它类型的代码,例如 HTML、XML等等。
然后,你可以将前面准备好的常用代码,进行粘贴(见图2的 ⑷)。
最后,点击应用
,就可以使用了(见图2的 ⑸)。
我这里给出了一些示例,这是适合我的,你可以很容易照搬,改成你自己的。
# !/usr/bin/env python
# coding:utf-8
"""
〖作者〗大侠,AhcaoZhu
〖CSDN-ID〗Ahcao2008, https://blog.csdn.net/Ahcao2008
〖项目〗大侠软件 ahApp
〖日期〗2023-3-5
〖功能〗本 Lib 模块集成一些常用的功能,用于过程开发。将来可用于 系统集成 中的 utils 模块。
"""
from zjgLib import *
from inspect import *
def main():
pass
if __name__ == "__main__":
main()
以上各部分的作用解释如下:
(对于初入门的读者,可以跳过这部分,只需要先学会如何操作即可。)
第1句,通常用于跨平台的编辑系统,例如unix
第2句,一般指定本模块编程代码集。utf-8 也是缺省的。不过显式指定还是有好处。
第3-9句,这里给出典型的三双引号风格的注释。它将来会出现在你发行模块(__module__
)的__doc__
文档中,所以会显得很专业、很规范。
接下来,是 import 语句群。引入你做当前课题/项目时经常用的。
然后,可以是类、函数的通常体形式,上面省略了,没有给出。例如:
class myClass(object):
_key: typing.Any
def __init__(self):
pass
@property
def key(self):
"""key : 键值。"""
return self._key
@key.setter
def key(self, value):
self._key = value
@key.deleter
def key(self):
del self._key
def mymethod(self):
pass
@staticmethod
def mysmethod():
pass
@classmethod
def mycmethod(cls):
pass
上面给出了一个类的通常体的形式,比较全面,有类名、继承,有私有变量、属性定义,有类的构造函数,静态函数、类函数、实例函数函数等。当然你还可以 override
一些系统缺省的属性,如,__doc__
,__repr__
等。
因为一般用不着,所以没给出。另外,用下面的实时模板,也可以更容易地实现(这将在下面一节演示如何进行)。
在示例模板的最后,给出了__main__
全局变量和main()
函数。
这个__main__
全局变量有什么作用呢?
__main__
— 顶层脚本环境
__main__
是顶层代码执行的作用域的名称。模块的__name__
在通过标准 输入、脚本文件或是交互式命令读入的时候会等于__main__
。模块可以通过检查自己的
__name__
来得知是否运行在 main 作用域中,这使 得模块可以在作为脚本或是通过python -m
运行时条件性地执行一些代码, 而在被import
时不会执行。
if __name__ == "__main__":
# execute only if run as a script
main()
对软件包来说,通过加入
__main__.py
模块可以达到同样的效果,当使用-m
运行模块时,其中的代码会被执行。
图3、实时模板(又称语句模板)
实时模板就不过多解释了。按照上图,很容易自行设置。与上述文件模板几乎类似,只是应用场合不同而已。
在上面的文件模板示例中,我给出了类的的示例,这里,比如,我们可增加一个名称为defclass
的模板。具体操作:在上图⑶处,添加名称,在⑺处添加代码(上面给出的类的通体代码示例)。
文件模板的使用,是在新建一个代码文件时。
在项目资源树中(参考图1的左边栏),右键新建一个代码文件时,新建立的代码文件,再不会是空白的、或是系统给我们推荐的,而是我们刚刚自定义的代码文件模板的内容。
即时模板的使用
在代码窗口,正常写代码时,以上述我们已经定义的类的模板(defclass
)为例,我们只要在任意代码处,键入defclass
,然后用Tab
键,就会跳出一大段的类的定义代码。我们可以把不需要的冗余代码删除掉。
怎么样,看了以上的介绍,对于代码文件模板和即时模板,你 get 到这一技能了吗?