标签:
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。
Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。
对象可以包含任意数量和类型的数据
语法格式:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Jerry Shi class ClassName: <statement-1> . . . <statement-N> #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Jerry Shi class ClassName(object): <statement-1> . . . <statement-N>
类对象支持两种操作:属性引用和实例化。
属性引用使用和 Python 中所有的属性引用一样的标准语法:obj.name。
类对象创建后,类命名空间中所有的命名都是有效属性名。所以如果类定义是这样:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Jerry Shi class MyClass: """一个简单的类实例""" i = 12345 def f(self): return ‘hello world‘ # 实例化类 x = MyClass() # 访问类的属性和方法 print("MyClass 类的属性 i 为:", x.i) print("MyClass 类的方法 f 输出为:", x.f()) # 实例化类 x = MyClass() # 访问类的属性和方法
很多类都倾向于将对象创建为有初始状态的。因此类可能会定义一个名为 __init__() 的特殊方法(构造方法),像下面这样:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Jerry Shi def __init__(self): self.data = []
当然, __init__() 方法可以有参数,参数通过 __init__() 传递到类的实例化操作上。例如:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Jerry Shi class Complex: def __init__(self, realpart, imagpart): self.r = realpart self.i = imagpart x = Complex(3.0, -4.5)
在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Jerry Shi #类定义 class people: #定义基本属性 name = ‘‘ age = 0 #定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 #定义构造方法 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s 说: 我 %d 岁。" %(self.name,self.age)) # 实例化类 p = people(‘test‘,10,30) p.speak()
标签:
原文地址:http://www.cnblogs.com/shiyongzhi/p/5832720.html