物件導向 三 靜態方法 類方法

2021-10-06 16:42:46 字數 2718 閱讀 6445

私有許可權:

在 屬性 或 方法 前面加上兩個下劃線 __

類的 私有屬性 和 私有方法 ,不能通過物件訪問,只能在類的內部 通過self訪問

類的 私有屬性 和 私有方法 ,不會被子類繼承,

class

masterworker

(object):

def__init__

(self)

: self.mifang=

"古典秘方"

self.__money=

5201314

defget_money

(self)

:print

(self.__money)

defmake

(self)

:print

("按照<%s>製作了煎餅果子"

%self.mifang)

class

(masterworker)

:def

__init__

(self)

: __init__ 會報黃,但是不會報錯

self.mifang=

"貓氏秘方"

defmake_cake

(self)

:print

("按照《%s》製作煎餅果子"

%self.mifang)

)damao.get__money(

) 可以檢視

多型:

發生繼承

子類重寫與 父類同名屬性和方法

呼叫子類與 父類同名屬性和方法

類屬性和例項屬性:

類屬性:類物件所擁有的屬性

class

people

(object):

address=

"山東" 類屬性

def__init__

(self)

: self.name=

"藍翔" 例項屬性

self.age =

50p=people

print

(p.age)

p.age=

10 修改例項屬性

print

(p.age)

輸出結果:50

10

通過例項物件不能修改類屬性

class

people

(object):

country=

"a"

p=people

p.country=

"b" 相當於 新增了乙個與類屬性同名的例項屬性

print

(p.country)

print

(people.country)

輸出結果:b

a

1.類方法: 需要用 修飾器 @classmethod 來標識

class

people

(object):

__coutry=

"a"

@classmethod

defget_country

(cls)

:print

(cls.__country)

p=people

p.get_country(

)

2.靜態方法: 需要用 修飾器 @staticmethon 來標識, 無引數

class

people

(object):

country=

"a"

@staticmethod

defget_country()

:print

(people.country)

p=people

p.get_country(

)

總結引數

修飾器例項方法

self

無類方法

cls@classmethod

靜態方法

無@staticmethod

建立物件:

__new__(cls)方法: 自動執行

__new__(cls)必須要有返回值

class

people

(object):

def__init__

(self)

:print

("init被呼叫"

)def

__new__

(cls)

: 建立物件

print

(new被呼叫)

return boject . __new__(cls)

# return 父類名 . __new__(cls)

p=people

輸出結果: new 被呼叫

init 被呼叫

物件導向 類方法和靜態方法

1 類方法 是類擁有的方法,需要用裝飾器 classmethod來標識其為類方法,對於類方法,第乙個引數必須是類物件,一般以cls 作為第乙個引數 當然可以用其他名稱的變數作為其第乙個引數,但是大部分人都習慣以 cls 作為第乙個引數的名字,就最好用 cls 了 能夠通過例項物件和類物件去訪問 cl...

物件導向 類方法和靜態方法

1.在類定義中,使用 classmethod裝飾器修飾的方法 2.必須至少有乙個引數,且第乙個引數留給了cls,cls指代呼叫者即類自身 3.cls這個識別符號可以是任意合法名稱,但是為了易讀,最好不要修改 4.通過cls可以直接操作類的屬性 1.在類定義中,使用 staticmethod裝飾器修飾...

python 物件導向 09類方法 靜態方法

類方法是從屬於 類物件 的方法。類物件可以通過裝飾器 classmethod來定義,具體格式如下 classmethod def 類方法名 cls 形參列表 方法體要點如下 classmethod必須位於方法的上面一行 第乙個引數cls class的縮寫,和前面筆記介紹的self類似 必須要有,代指...