首先声明,本文章仅是作者本人在近两年时间自己摸索过来的,若有不严谨,还请指出@~@
那么开始我们的第一项:
基本py文件---main.py
最新改进:https://blog.csdn.net/BYby_YY_123/article/details/133513000?spm=1001.2014.3001.5502
main(n.总管道,主线路),顾名思义是一切的源头,我们要去编写一个py项目,必不可少的就是main.py文件,但是对于萌新来讲,这个文件的意义何在?下面是两个程序对比:
class XX:
def __init__():
XX()
def XX():
go(X)
update()
fill(X)
XX
XX
XX
XXXXX
X=X
XX=XX
X=[]
XX
XXX()
XXX_X()
if XXXX:
XX().__init__()
from XX import *
class XX:
def __init__():
XX().__init__()
if XXXX == 'XXXX':
XX().__init__()
最上面是将code全部堆在一起,使得让我们自己难以找到,属于编写一时爽,读更一时苦.而main.py就很好的解决了此问题,它可以理解为将许多的功能分为了一个个py文件,将一个个py文件用main.py总和在一起,也就是最下面的"from XX import *",总中XX就为你在编写时所建的py文件
例如我这个项目中 我所用的是Main_face(主界面)及setting(设置).py文件(注:这两给文件属于个人创建py文件,与库的概念有些不同,简单的,这些是需要你来自己编写的,正如图片中的TK_face()就是作者本人的自定义函数,在放到__init__(类的初始化(会补充在下章))中).那么我再来讲讲main里面是什么吧:
来看第一个"from XX import *",这个嘛....还是简单说下吧,在py中,倘若想引入自己的py文件中某一内容,则需要from/import来讲其引入至此,故这个段code很明显是将你所编写的py文件导入至此,正如上面的"from Main_face import*"一样,是将Main_face这个py文件导入至main.py中
次个"class XX:
def __init__():
XX().__init__()"
class的功能指创建一个类,它对于写大项目讲是一个不错的功能(可以理解为它是个盒子,里面是可以装一些函数的,再者是里面的self,这个对于萌新讲一个是个大问题了,self可以理解为这个class在里面的名字?比如说我建了个self.a = 1,那么你可以在这个class里面任意调用,等同于全局变量对于class里面讲,包括里面的函数同理)
__init__()是属于class中初始化,在运行class时,会自动运行__init__()了的内容,不必自己调用当项目开始有分支时
就可能会出现这种情况(all里面存放的是事件数据tips:__init__是不能有返回值的故要引入里面的总体事件数据变量all来在main中做出分支判断)
后面的"XX().__init__"中XX值的是在导入的py文件中的class名字,__init__上面说过,这里是指引入的py文件中class中的__init__函数
下个"if XXX==XX:"准确讲是"if __name__ == "__main__": "这也就是main的运行起点,下面紧跟着的应该是"XXX().__init__()"也就是在main.py中的class里面的__init__()