OOA object oriented analysis
OOD object oriented design
OOP object oriented programming
什么是self ?
打一比方:类是图纸,房子是实例,而self就是门牌号;相当于C++ 的指针
class Boll:
def setname(self, name):
self.name = name
def kick(self):
print '我是 %s, 该死的,谁题我。。。 ' % self.name
>> a = Boll()
>> a.setname('球A')
>> b = Boll()
>> b.setname('球B')
>> a.kick()
我是球A, 该死的,谁题我。。。
>> b.kick()
我是球B, 该死的,谁题我。。。
_ _init_ _ (self)方法
class Boll:
def _ _init_ _(self, name):
self.name = name
def kick(self):
print '我是 %s, 该死的,谁题我。。。 ' % self.name
>> a = Boll('土豆')
>> a.kick()
我是土豆, 该死的,谁题我。。。
>> b = Boll()
会报错,因为name没有赋值 如果使用default值 会避免这个问题: def __init__(self, name=‘ball A’):
公有和私有
python的伪私有
私有变量: _ _变量名
python内部将其改为 _类名_ _变量名 的形式
私有函数:_ _函数名
class Person:
name = ‘GYW’
_ _age = 19 # 双下划线_ _ : python mangling 名字重整, 其实是python内部将带有下划线的名字改为了 _类名__变量名的形式
def getAge(self): # 外部可以通过这个方法来调用私有变量
return self._ _age
>> p = Person()
>> print p.name
GYW
>> print p._ _age
报错,私有名字不能直接调用
>> p. getAge()
19
>> p._Person_ _age() # python mangling 名字重整
19
网友评论