python是一种面向对象的语言,其中python的内部包含了几种内建对象类型(数字,字符串,列表,元组和字典)。同时python也可以创建自己的对象和函数。在说明如何创建自己的对象之前,首先说明其中几个重要的概念。
多态:是对不同的对象使用同样的操作,也就是说给每个对象定义同样的函数。例如对于元组和字典可以定义同样的函数count,以计算元组和字典的长度;
封装:对外部世界隐藏对象的工作细节
继承:由子类继承父类的属性
好了,下面就具体讲解类和对象的声明
class Person: #define class
<span style="white-space:pre"> </span>age=450
<span style="white-space:pre"> </span>def setName(self,name): #public method
<span style="white-space:pre"> </span>self.name=name
<span style="white-space:pre"> </span>def getName(self):
<span style="white-space:pre"> </span>return self.name
<span style="white-space:pre"> </span>def __inaccessible(self): #private method
<span style="white-space:pre"> </span>print "you can acces this method"
<span style="white-space:pre"> </span>
foo=Person()
foo.setName("gaoxiang")
print foo.getName()
print foo.name
#print foo.__age ###you can`t access the attribute age because the __age is private
#foo.__inaccessible
在上述代码中声明了一个叫做Person的类,其中包括了两个方法,setName()和getName()。对于setName方法需要两个参数self和name,其中self是指自身,用于对自身属性的访问,而name则是有对象调用函数时传入的。对于getNname方法只有一个参数self,用于对自身属性的访问。第三个方法__inaccessable为private method 外部的对象不能访问该方法。
foo=Person() 该语句创建一个Person类型的对象,该对象可以调用类中事先定义好的函数
需要说明的一点是对象自身可以直接对其属性进行访问,eg:foo.name(name为对象的一个属性)。但是foo却不能直接访问__age因为__age是一个私有变量。
class student(Person):
def setName(self,name):
print "I am a student"
self.name=name
foo2=student()
foo2.setName("baiyanlang")
print foo2.getName()
子类继承父类,子类中可以覆盖父类的方法,同时子类也可以定义自己的方法。
有了面向对象的设计,python程序的书写将会更加简单。