私有許可權:
在 屬性 或 方法 前面加上兩個下劃線 __
類的 私有屬性 和 私有方法 ,不能通過物件訪問,只能在類的內部 通過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類似 必須要有,代指...