python 類和物件(2)

2021-10-05 19:45:54 字數 1833 閱讀 6225

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 ...