自己敲過之後效果更好!
#!/user/bin/env python
# -*- coding:utf-8 -*-
#變數#_***,單下劃線開頭的變數,標明是乙個受保護(protected)的變數,原則上不允許直接訪問,但外部類還是可以訪問到這個變數。
class student:
def __init__(self,name,age):
self._name = name
self.age = age
stu = student('miao','23')
#當要輸入_name時,pycharm不會進行_name的提示
print(stu._name)
#當要顯示age時,pycharm會進行age的提示
print(stu.age)
#output:
#miao
#23#__***,雙下劃線開頭的,表示的是私有(private)的變數
#只能是允許這個類本身進行訪問,連子類也不可以
#用於命名乙個類屬性(類變數),呼叫時名字被改變
#(在類student內部,__name變成_student__name,如self._student__name)
#雙下劃線開頭的例項變數仍然可以通過_student__name來訪問__name變數:
class person:
def __init__(self,name):
self.__name = name
per = person('qi')
print(per._person__name)
#output:qi
#__***__,以雙下劃線開頭,並且以雙下劃線結尾的,是內建變數
#內建變數是可以直接訪問的,不是private變數,如__init__,__import__或是__file__
#所以,不要自己定義這類變數
#***_,單下劃線結尾的變數一般只是為了避免與python關鍵字的命名衝突
#user_constant,大寫加下劃線,對於不會發生改變的全域性變數,使用大寫加下劃線
#函式--大部分使用小寫和下劃線
#私有方法:小寫和乙個前導下劃線
#這裡和私有變數一樣,並不是真正的私有訪問許可權
#同時也應該注意一般函式不要使用兩個前導下劃線(當遇到兩個前導下劃線時,python的名稱改編特性將發揮作用)
class privatec:
def _secrete(self):
print("don\'t test me")
pric = privatec()
pric._secrete()
#output:
#don't test me
#特殊方法:小寫和兩個前導下劃線,兩個後置下劃線
#這種風格只應用於特殊函式,比如操作符過載等
def __add__(self,other):
return int.__add__(other)
#函式引數:小寫和下劃線,預設值等號兩邊無空格
def connect(self,user=none):
self._user = user
#類#類總是使用駝峰格式命名,即所有單詞首字母大寫其餘字母小寫
#類名應該簡明精確,並足以從中理解類所完成的工作
#常見的乙個方法是使用表示其型別或者特性的字尾,例如:sqlengine,mimetypes
#對於基類而言,可以使用乙個base或者abstract字首
#不要濫用 *args 和 **kwargs,可能會破壞函式的健壯性
python類中的變數和函式
類變數是在類下面直接定義的變數,類變數被類和例項訪問。所有例項在對類變數賦值之前一直共享記憶體,賦值後就各自儲存各自的類變數。成員變數在 init 函式中定義的以self.開頭,可以被例項訪問。區域性變數是在別的函式下定義的可以self.開頭也可以不以此開頭。不能被訪問 普通函式,不能訪問類中的任何...
python中的類,類變數,例項變數
這幾天寫 的時候碰到乙個python中的小問題,找了好半天才解決,所以記錄下來。classa object def init self self.x y def call self for i in range 5 print x self.x print y y 輸出的結果是 x 5,5,5,5,...
python中random模組常用函式總結
本文用來總結記錄,供以後翻閱 1.seed a none,version 2 隨機數種子生成器。一般不呼叫,且預設選系統當前時間為隨機數種子。個人總結 種子不變,列印出來的隨機數也永遠不變 哪怕重新開啟檔案再執行 2.randrange stop stop引數必須為整數,函式則從 0,stop 中返...