一、类
定义类需要使用关键字class,例如:
class Classname():
def _init_(self,p1,p2... ...):
self.p1=p1
self.p2=p2
def fun1(self):
def fun2(self):
1.其中关键字class用来表明接下来要创建类,Classname是类名,按照习惯,在Python中,首字母大写的名称指的是类名。_init_(self,p1,p2... ...)方法是一个特殊的方法(类中的函数称为方法),是Python的默认方法,个人理解为就像JAVA中的构造方法。每当根据类创建新实例时,Python都会自动运行它,注意它的名称前后各有一个下划线,这只是一种约定,为了避免Python的默认方法与普通方法发生名称冲突。
2.接着来看_init_方法,它可以定义多个形参,但是形参self不可缺少,并且必须位于第一个位置。为什么必须要有self呢?
这是因为Python是通过调用_init_方法来创建实例的,Python在调用_init_方法时,会自动的传入实参self。其实每一个与类相关联的方法调用Python都会自动的传入实参self,那么这个self究竟是干什么用的呢?实际上,self就是一个指向实例本身的引用,让实例能够访问类中的属性和方法。
3.self.p1与self.p2都是定义的带有前缀self的变量,以self为前缀的变量可以被类中所有方法使用,还可以通过任何类的实例来访问这些变量。像这样可以通过实例来访问的变量称为类的属性。
4.其它的方法也同样需要形参self。
二、创建实例
变量名=类名(参数) 就可以创建一个实例了,通过变量名加.号就可以来访问类中属性和方法。
三、继承
我们都知道面向对象的一大特征就是继承,子类会继承父类中的所有属性和方法,并且可以拥有自己独特的属性和方法,但是在想要拥有子类的实例时,必须要先实例化父类。在Python中继承的结构如下:
class son(father):
def _init_(self,p1,p2):
super()._init_(p1,p2)
其中son是我们需要定义的类名,在括号中是son类需要继承的父类的名称。
四、导入类
假如现在有一个模块名称为car,在该模块中包含有Car类,则在我们的主程序文件中,使用from car import Car就可以将Car类导入到主程序文件了。如果模块中包含多个类,想要一次性导入多各类,则可以使用from car import Car1,Car2。还可以导入整个模块,再使用.号来使用类,例如car.Car()。还可以导入模块中的所有类,使用from car import * 。
五、Python标准库
在前面我们知道字典的添加和访问都是无序的,但是有时候我们想要知道他们的顺序,这时候就需要使用其他人写好的库了。Python标准库是一组模块。实现我们的需求,只需要使用模块collections里的OrderedDict类即可。OrderedDict实例的行为几乎与字典相同,区别在于记录了键-值对的添加顺序。例如dict=OrderedDict() 就获得了实例dict,接下来就可以像操作字典变量一样操作dict了。