文章目录
类、模块和包是Python组织代码时不同的层次分类,简单来说,类是代码级需要聚合在一起的数据和方法,模块是文件级需要聚合在一起的代码段,包是文件夹级需要聚合在一起的代码集合。
1.定义类
- 1.定义类
- 2.定义模块
- 3.定义包
- 4.主程序入口
- 5.作者答疑
类的构造函数、析构函数、类的实例以及类的继承,注意内置函数第一个参数是self,调用时不需要传递,简单形式如下:
#定义一个class
class test(object):
a = 1 #a被称为属性
#self为默认参数,代表class的对象本身
def __init__(self, var): #构造函数
self.var = var #self中定义的成员变量可在被class中的其他函数引用
def get(self, a=None): #get被称为test对象的方法
return self.var, a
def __del__(self): #析构函数
del self.var
"""
使用对象内置的方法
1.实例化这个class (test) t = test()
2.使用t.method()的方式去调用class的内置方法
注意:当定义一个class的内置方法method时,method的参数的第一个永远是self
"""
#类的调用
t = test("hello world") #t是类test的一个实例
name, var = t.get(5)
print(name, var)
#类的继承
class father(object):
def __init__(self, name):
self.name = name
class son(father): #继承father
def get_name(self):
return self.name
t = son("hello world")
print(t.get_name())
2.定义模块
模块即为文件,模块名即为文件名,定义一个文件myfunc.py,源代码如下:
#定义一个文件myfunc.py
def func():
return hello world
在另外一个文件中使用,代码如下:
#在主文件里
import myfunc
print(myfunc.func())
3.定义包
新建一个文件夹MyPackage,在包中放置一个__init__.py文件,里面放置初始化的代码,然后在文件夹外引用时,代码如下:
import MyPackage.myfunc #引入包中的模块
print(MyPackage.myfunc.func())
4.主程序入口
“name” 的作用:
1、 __name__
是python的一个内置类属性,它天生就存在于一个 python 程序中。 2、直接运行python程序时,__name__
的值为“__main__”
3、而在其它程序中导入.py文件运行时,__name__
的值为文件名,即模块名 4、 因此依据该特性,最直接的作用就是,区分py文件直接被运行,还是被引入其他程序中。
if __name__ == "__main__":
pass
5.作者答疑
如有疑问,请留言。