内建函数issunclass和isinstance,可用来判断一个类是否派生自另一个类,并判断一个值是特定类的一个对象,函数那个类的一个子类。
设计原则:抽象类不应该拥有构造函数
引起的原因:
一个公共抽象类型拥有一个公共的构造函数
描述:
构造函数被用来建立一个对象实例,但是你不能建立一个抽象类型的实例,抽象类型的构造函数就仅仅能够被它的继承类型使用。因此,为一个抽象类构造公共构造函数是一个错误的设计。
修复:
如果需要修复这个问题,可以声明这个构造函数为保护型,或者,声明这个类型不是一个抽象类型。
一个类需不需要构造函数要看具体情况,和是不是抽象类(虚基类)没有关系。
一个类格构造函数的作用是对其成员进行初始化,抽象类也有可能包含需要初始化的成员,也需要进行初始化。
初始化可以在基类的构造函数中进行,也可以在派生类的构造函数中进行。如果没有定义构造函数,编译器会自动生成缺省的复制型构造函数。我个人的看法是,不管在什么情况下都应该尽量抛开编译器的因素,自己编写构造函数。
造函数没有必要写成虚函数,编译器会自动调用父类的构造函数。而析构函数则不同,一般应该写成虚函数。
Python中的静态方法和静态成员
使用内建方法staticmethod创建静态方法
__slots__类属性,可以用来限定只允许类的对象拥有的属性
__slots__用来规定对象的属性
Pytho中属性的概念。
通过函数property()来创建属性,这样就可以访问类的私有成员
#property()属性的使用
第10章 GUI编程
1、Label组件的示例
第12章 异常的处理
异常的栈反解
自定义异常类