一、__call__方法的對象
定義了__call__方法的對象,稱爲“可調用對象”,即__call__()方法能夠讓類的實例對象,像函數一樣被調用
代碼演示:
class count:
def __init__(self,a):
self.a=a
def __call__(self,b):
x=self.a+b
print(x)
def print(self):
print (self.a)
Count=count("you")
Count.print()
Count(" are good")
結果:
you
you are good
補充:如果只看 Count(" are good") 是無法知道它是函數還是一個類實例;直接調用實例名也是__call__()方法起的作用。
二、私有屬性和私有方法
注意要點:
(1)通常我們約定,兩個下劃線開頭的屬性是私有的。
(2)類內部可以訪問私有屬性(方法),類外部不能直接訪問私有屬性(方法)
(3)類外部可以通過“_類名__私有屬性(方法)”訪問私有屬性(方法)
代碼1:
class Employee:
def __init__(self,name,age):
self.name=name
self.age=age
a=Employee("小明","20")
print(a.name)
print(a.age)
結果:
小明
20
如果對年齡進行私有的話:
class Employee:
def __init__(self,name,age):
self.name=name
self.__age=age
a=Employee("小明","20")
print(a.name)
print(a.age)
結果:
如果想訪問的話可以:
class Employee:
def __init__(self,name,age):
self.name=name
self.__age=age
a=Employee("小明","20")
print(a.name)
print(a._Employee__age)#可以看上面注意要點內部紅字
結果:
小明
20
代碼2:
class Employee:
def __init__(self,name,age):
self.name=name
self.__age=age
def __count(self):
print("中國速度")
a=Employee("小明","20")
print(a.name)
print(a._Employee__age)
a._Employee__count()
結果:
小明
20
中國速度
三、靜態方法
要點:
1、Python中允許定義與:類對象,無關的方法,稱爲“靜態方法”。
2、”靜態方法“和模塊中定義普通函數沒有區別,著不過"靜態方法"放到了“類的名字空間裏面”,xuyaotongguo“類調用”。
3、靜態方法通過裝飾器@staticmethod來定義,格式如下:
@staticmethod
def 靜態方法名([形參列表]):
函數體
補充:
我總結我所有python筆記於一篇博客裏:
點擊即可進入Python學習筆記大總結(我把我所有python筆記做了總結和學習順序,點擊即可進入相關博客。希望可以便於你們閱讀)