Python3 面向对象

面向对象的技术简介
类(Class): 用于描述具有相同属性和方法的对象的集合。它定义了集合中每个对象的共同属性和方法。对象是类别的例子。
类变量:类变量在整个实例化对象中是公共的。类变量在类中定义,在函数体之外定义。类变量通常不用作实例变量。
数据成员:类变量或实例变量用于处理类及其实例对象的相关数据。
方法重写:如果父类继承的方法不能满足子类的需要,可以重写。这个过程被称为方法的覆盖(override),也叫方法重写。
局部变量:定义方法中的变量,仅作用于当前实例类。
实例变量:在类声明中,属性由变量表示。这种变量称为实例变量,在类声明的内部,但在类的其他成员方法之外。
继承:即派生类(derived class)继承基类(base class)字段和方法。继承也允许将衍生对象视为基本对象。例如,有一个设计:一个Dog类型的对象来自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是Animal)。
实例化:创建一个类的实例,类的具体对象。
方法:类中定义的函数。
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
与其它编程语言相比,Python 添加类机制,尽量不添加新的语法和语义。
Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,衍生类可以覆盖基类中的任何方法,基类中的同名方法可以在方法中调用。
对象可以包含任何数量和类型的数据。
类定义
语法格式如下:
classClassName: <statement-1> . . . <statement-N>
实例化后,可以使用其属性,实际上,创建一个类后,可以通过类名访问其属性。
类对象
类对象支持两种操作:属性引用和实例化。
使用和使用属性引用 Python 所有属性都引用相同的标准语法:obj.name。
创建类对象后,类命名空间中的所有命名都是有效的属性名。因此,如果类定义如下:
#!/usr/bin/python3
classMyClass:
"""一个简单的类实例"""
i=12345
deff(self):
return'helloworld'
#实例化类
x=MyClass()
#访问类的属性和方法
print("MyClass类属性i为:",x.i)
print("MyClass类方法f输出为:",x.f())实例化类:
#实例化类 x=MyClass() #访问类的属性和方法
以上创建了一个新的类实例,并将对象赋予局部变量 x,x 对象为空。
上述程序输出结果如下:
MyClass属性i为:12345 MyClass类方法f输出为:helloworld
许多类别倾向于将对象创建为初始状态。因此,类别可以定义为一个名称 __init__() 特殊方法(结构方法)如下:
def__init__(self): self.data=[]
类定义了 __init__() 如果使用方法,类的实例操作将自动调用 __init__() 方法。因此,在下一个例子中,我们可以创建一个新的例子:
x=MyClass()
当然, __init__() 方法可以有参数,参数可以通过 __init__() 传递到类的实例操作上。例如:
>>>classComplex: ...def__init__(self,realpart,imagpart): ...self.r=realpart ...self.i=imagpart ... >>>x=Complex(3.0,-4.5) >>>x.r,x.i (3.0,-4.5)
