1.继承
继承的父类在定义类的括号中表示,子类与父类的关系与C++以前学到的一样:子类is父类。
子类要注意在初始化函数 __init__() 对父类属性进行初始化:super(子类名, self).__init__(父类初始化函数的参数,self省略)
2.获取变量信息
(1)isinstance()方法
判断一个变量是否属于某个类型:isinstance(变量名, 类名)
(2)type()方法
可以接收基本类型、变量(包括指向函数或类的变量),返回类型。可以用==判断两个变量是否同类型。
(3)dir()
获得一个对象的所有属性和方法。
3.多态
比如说父类与子类有同名同参数但内容不同的函数。
class A:
def prt(self):
print "A"
class B(A):
def prt(self):
print "B"
def test(arg):
arg.prt()
a = A()
b = B()
test(a)
test(b)
输出:
A
B
4.多重继承
Python允许继承多个父类,称为多重继承。通过多重继承,子类同时获得多个父类的所有功能。
class P1():
pass
class P2():
pass
class C1(P1,P2):
pass
5.getattr()、setattr()以及hasattr()
配合getattr()、setattr()以及hasattr(),我们可以直接操作一个对象的属性。
>>> setattr(obj, 'y', 19) # 设置一个属性'y'
>>> hasattr(obj, 'x') # 有属性'x'吗?
True
>>> getattr(obj, 'x') # 获取属性'x'
19
>>> obj.y # 获取属性'y'
19
获取不存在的对象会抛出一个AttributeError错误。