- 包括實例屬性、類屬性,私有成員和公有成員,公有方法、私有方法和靜態方法。
類似_xxx和__xxx這樣的函數或變量就是非公開的,不應該被直接引用。如下:
# python私有函數
def _abc_1(name):
return "Hello, 私有函數一號為:%s" %name
def _abc_2(name):
return "Hi, 私有函數二號為:%s" %name
# python公有函數
def greeting(name):
if len(name)>3:
return _abc_1(name)
else:
return _abc_2(name)
print(greeting('frank'))
-
類Class中成員變量有兩種屬性分別是:實例屬性和類屬性。
-
實例屬性是在構造函數中定義的(init),定義時候以self作為前綴。
-
類屬性是在類中方法之外但又在類之中定義的屬性。類屬性在所有實例之間共享。在類內部和類外部都可以通過"類.類屬性"來訪問。
-
兩者訪問形式:主程序中,實例屬性只能通過對象名訪問;而類屬性能夠通過類名訪問,也可以通過對象名訪問。
-
-
對於公有成員(方法和變量),可以公開使用,既可以在類內部訪問,也可以在類外部訪問。
-
對於私有成員(方法和變量),只能在類內部使用,但也可以通過特殊的方法進行訪問,即"對象名._類名+私有成員",
book._Book__types
。- 兩者表現形式:類屬性定義時,如果以兩個短下滑線"__"開頭則表示是私有屬性,否則就是公有屬性。例如,
self.__size = s
為私有屬性,而self.price = money
為公有屬性。
- 兩者表現形式:類屬性定義時,如果以兩個短下滑線"__"開頭則表示是私有屬性,否則就是公有屬性。例如,
-
私有方法:以兩個下滑線"__"開始,不能通過對象名直接調用。只能在屬於對象的方法中通過self調用。例如,
self._namemethod
-
公有方法:通過對象名直接調用。例如,
a.printLcs
-
靜態方法:可以通過類名和對象名調用,但不能直接訪問屬於對象的成員,只能訪問屬於類的成員。
參考:
1、https://blog.csdn.net/lydia_liumeijie/article/details/80391531