python
的魔法方法
雙下劃線包圍的函式
__init__(self,param1,param2):相當於建構函式
class ball:
def __init__(self, name):
self.name = name
def kick(self):
print("我叫%s,該死的,誰踢我..." % self.name)
b = ball('土豆')
b.kick()
公有還是私有?
舉例:
class person:
name = '小甲魚'
p = person()
p.name
定義私有變數、函式,在前面加「__」兩個下劃線
class person:
__name = '小甲魚'
p = person()
p.__name
這時是訪問不到的,可以通過定義公有方法進行訪問
class person:
__name = '小甲魚'
def getname(self):
return self.__name
p = person()
p.__name
p.getname()
事實上是可以通過:「物件名._類名__變數名」形式來訪問
如:p._person__name可以訪問
繼承:
class
derivedclassname
(baseclassname):
多重繼承如下:
class
derivedclassname
(base1, base2, base3):
舉例:
import random as r注意:子類有與父類同名方法,則覆蓋父類方法class fish:
def __init__(self):
self.x = r.randint(0, 10)
self.y = r.randint(0, 10)
def move(self):
self.x -= 1
print("我的位置是:", self.x, self.y)
class goldfish(fish):
pass
class carp(fish):
pass
class salmon(fish):
pass
class shark(fish):
def __init__(self): #注意:這裡重寫了父類的__init__(self)方法,覆蓋了,所以沒有了屬性x,
#fish.__init__(self) #呼叫未繫結的父類方法
super().__init__() #或者用super()函式,不用給基類的名字,便於繼承
self.hungry = true
def eat(self):
if self.hungry:
print("吃貨的夢想就是天天有的吃^_^")
self.hungry = false
else:
print("太撐了,吃不下了!")
多重繼承:
Python類和物件關係2
示例如下 1.類 屬性 姓名 量 持有的槍 法 安 彈 安彈夾拿槍 持有搶 開槍 2.彈類 屬性 殺傷 方法 傷害敵 讓敵 掉 3.彈夾類 屬性 容量 彈儲存的最 值 當前儲存的 彈 法 儲存 彈 安裝 彈的時候 彈出 彈 開槍的時候 4.槍類 屬性 彈夾 預設沒有彈夾,需要安裝 法 連線彈夾 儲存...
2 類和物件
類即類別 種類,是物件導向設計最重要的概念,從一小節我們得知物件是特徵與技能的結合體,而類則是一系列物件相似的特徵與技能的結合體。那麼問題來了,先有的乙個個具體存在的物件 比如乙個具體存在的人 還是先有的人類這個概念,這個問題需要分兩種情況去看 世界上肯定是先出現各種各樣的實際存在的物體,然後隨著人...
類和物件2
一,建構函式 特性 函式名與類名相同。無返回值。物件例項化時編譯器自動呼叫對應的建構函式。建構函式可以過載。class date date void init int year,int month,int day void init date this,int year,int month,int ...