标签:
Python是一种面向对象、解释性语言,所以在Python开发(http://www.maiziedu.com/course/python-px/)里包含有类,因为面向对象语言都有类。今天就简单分享一下Python中类,重点是与C++中的类进行对比。
C++中的父类,Python中叫超类(superclass)
创建类
class Person:
def setName(self, name):
self.name = name
def getName(self):
return self.name
def greet(self):
print "Hello, world! I’m %s. " % self.name
C++中this关键字,Python中叫self
似乎self关键字更加形象。
将特性绑定到一个普通函数
>>>class Class:
def method(self):
print ’I have a self!’
>>>def function():
print "I don’t..."
>>>instance = Class()
>>>instance.method()
I have a self!
>>>instance.method = function
>>>instance.method()
I don’t...
私有
Python中没有private关键字,不论变方法还是特性,在名字前面加上双下划线即可:
class Secretive:
def __inaccessible(self):
print ’Bet you can’t see me...’
指定超类
即我们C++中的父类、继承。这里不是使用的冒号,而是把超类写在子类后面的括号中:
class Filter:
def init(self):
self.blocked = []
class SPAMFilter(Filter):
def init(self):
self.blocked = [’SPAM’]
检查继承
据我所知,在C++中没有直接方法判断两个类是否存在父子关系。
Python中有内建方法,issubclass函数:
>>>issubclass(SPAMFilter, Filter)true
>>>issubclass(Filter, SPAMFilter)false
唯一需要注意的是,第一个参数是子类,第二个参数是超类。
检查一个对象是否是一个类的实例
isinstance方法,第一个参数是实例,第二个参数是类名
多个超类
也就是我们C++中所说的多重继承,即才括号里写几个类,中间用逗号隔开。
标签: