要想搞清楚类,首先需要搞清楚的是以下两个名词:方法,对象。
我们可以定义全体女性为一个类别,那么女性的独有特征即为女性之类固有属性,而定义中女性去做的事情即为方法,而对象则是生活中的某个女性姑且命名为杭,对象即为类的实例,而定义之固有属性即为类变量。
如果我们是上帝或任何造物主之类的角色,我们在为亲爱的女性定义时,便可声明女性即为一类,其固有属性为嗓音细腻、无法忍受一星半点的月经周期等等(god is a girl);我为上帝,我会赋予女性去做的事情,如饭蔬食饮水,神圣如繁衍后代等即为方法;而地球上生活的一个女孩即为杭,此女孩即为我定义女性类中的实例,也即我的对象。因此,一句话总结,对象是类的实例。
接下来我们讲讲创建类时的规则,即上帝的规则:
对于类变量来说,首先它是公用的,即对所有实例来说都通用;它一般定义在类里面,且在方法之外;它包含类的固有属性,且不会作为实例变量使用,类变量的修改会影响到所有的实例。
对于方法来说,它分为两种。一种为定义在类中的函数,另一种则是python中自动产生的方法,前者较为容易理解,即我们将平时自己所定义的函数定义到了类之中,而其也只能在类中调用。对于后者,它在实例化也就是创建对象后会被自动调用,下面对于__init__所举的例子会很好说明这一特点。两者除了其使用不同外这一区别还有明显区别即名称上的不同,后者的格式都是__func__,而前者和函数类似。另外,在定义方法时,务必且要放在第一个位置的参数为self(不是self也可以,但是最好写self),其指代类的实例即对象。
类的延申:
1.__init__
此为python中自动产生的方法,作用是对类中的对象进行一个初始化的操作,前面说过,此类方法创建对象后会被自动调用,其变量即为实例变量。
如图,我在类中定义了两种方法,并对类进行实例化,也即创建新对象p。
运行后结果如何呢,理应是直接结束,不输出任何东西,但实际上却是如下图。
这说明在对类进行实例化之后,__init__会被自动调用。
而__init__的主要用法如下图
运行结果为:
2.局部变量
其位置一般处于定义方法中,仅作用于当前实例,函数执行结束就会被销毁。
3.类的继承(单继承)
即子类(派生类)可以继承父类(基类)的属性和方法。
若基类和派生类在同一模块,则可以使用
class 派生类名(基类名)
直接调用。
若两者不在同一模块,则应从基类所在模块导入基类:
方法一:from 模块 import 基类
方法二:import 模块
如果父类定义的方法功能不满足要求,则可以在子类中重写方法。