类定义是为了继承,没有继承,定义类也没有意义。
类可以多继承,在括号里多加一个类就可以实现多继承。
类里面加__
的属性是私有属性,加__
的方法是私有方法,继承的类不能获得。
继承的类可以重写父类的函数,通过定义跟父类一样的函数名实现。
__init__()
是一个特殊的方法,每当你用这个类创建新实列时,python会自动运行它- 定义的类中的参数叫做形参,实列化时传入的参数叫实参
- 以self为前缀的变量可供类中的所有方法使用,可以通过类的任何实例来访问。所以如果你想让一个变量被整个类都使用,你可以定义一个以self为前缀的变量,让你想要的形参赋给它
- 。一个类继承另一个类时,将自动获得另一个类的所有属性和方法。原有的类称为父类,而新类称为子类。
- 在既有类的基础上编写新类时,通常要调用父类的方法__init__()。这将初始化在父类__init__()方法中定义的所有属性,从而让子类包含这些属性。
如super.__init__(self)
。Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx。super() 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。 - 从.py文件中导入类,可以导入多个类,用逗号分隔各个类
- 还可以导入整个模块,再使用句点表示法访问需要的类。需要从模块中导入多个类时,最好导入整个类,使用Module_name.ClassName语法来访问类。你清楚地知道在程序的哪些地方使用了导入的模块。这也避免了导入模块中的每个类可能引发的名称冲突。
- 在一个模块中导入另一个模块,有时候,需要将类分散到多个模块中,以免模块太大或在同一个模块中存储不相关的类。将类存储在多个模块中时,你可能会发现一个模块中的类依赖于另一个模块中的类。在这种情况下,可在前一个模块中导入必要的类。
- 导入类是使用别名,
from electric_car import ElectricCar as EC
- 类编码的代码风格:类名应采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。
- 对于每个类,都应紧跟在类定义后面包含一个文档字符串。这种文档字符串简要地描述类的功能,并遵循编写函数的文档字符串时采用的格式约定。每个模块也都应包含一个文档字符串,对其中的类可用于做什么进行描述。
- 可使用空行来组织代码,但不要滥用。在类中,可使用一个空行来分隔方法;而在模块中,可使用两个空行来分隔类。