今天自己写了 一个简单代码帮助自己理解python编程中的一些类的关系以及一些函数属性, 总结如下:
1,在python当中一切皆对象,每产生一个对象会对应三个属性:id、类型type和数值
2,创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性:而类中有两种属性:数据属性和函数属性,其中类的数据属性是共享给所有对象的,而类的函数属性是绑定到所有对象的。 3,在类的内部来说,__init__是类的函数属性,但是对于对象来说,就是绑定方法。
4,命名空间的问题:先从对象的命名空间找,随后在从类的命名空间找,随后在从父类的命名
空间找。
5,所谓初始化构造函数就是在构造对象的同时被对象自动调用,完成对事物的初始化,一个类只要生成一个类对象,它一定会调用初始化构造函数.
特点:
1>一个类中只能有一个初始化构造函数
2>不能有返回值
3>可以用它来为每个实例定制自己的特征
6,方法重写指在子类中重新定义父类中已有的方法,这中现象叫做方法的重写
举例
#!/usr/bin/python # -*- coding:utf-8 -*- class People: def __init__(self,name,age): self.name = name self.age = age self.tell() def tell(self): print("%s---%s"%(self.name,self.age)) class Student(People): def tell(self): print("呵呵!") if __name__ == ‘__main__‘: student = Student("alex",20) #查看Student所有的父类 print(Student.__bases__) #查看最近的父类 print(Student.__base__) #student既是Student类,又是People类 print(isinstance(student,Student)) print(isinstance(student,People))
运行结果
在此例中,子类Student和父类People都定义了Tell方法,子类没有定义构造函数,此时调用的是父类的构造函数,但注意父类构造函数在调用tell()方法时,调用的是子类的tell()函数,因为两个函数重名,相当于重写了父类的函数,此时要调用子类重写后的函数。
原文地址:https://www.cnblogs.com/lover995/p/12261927.html
时间: 2024-10-08 08:51:19