OOA? object oriented analysis
OOD? object oriented design
OOP object oriented programming
什么是self ?
打一比方:類是圖紙,房子是實(shí)例蓄坏,而self就是門牌號引镊;相當(dāng)于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()
會報錯,因?yàn)閚ame沒有賦值? 如果使用default值 會避免這個問題:?def?__init__(self, name=‘ball A’):????
公有和私有
python的偽私有??
私有變量:? _ _變量名???
python內(nèi)部將其改為? _類名_ _變量名 的形式
私有函數(shù):_ _函數(shù)名
class Person:
? ? ? ? ? name = ‘GYW’
? ? ? ? ? _ _age = 19? ?? ? ?# 雙下劃線_ _ : python mangling 名字重整, 其實(shí)是python內(nèi)部將帶有下劃線的名字改為了 _類名__變量名的形式
def getAge(self):? ? # 外部可以通過這個方法來調(diào)用私有變量
? ? ? ?return self._ _age?
>> p = Person()
>> print p.name
GYW
>> print p._ _age
報錯著觉,私有名字不能直接調(diào)用
>> p. getAge()
19
>> p._Person_ _age()? ? ? ?# python mangling 名字重整
19