關於python3的property的理解

2021-09-25 10:58:36 字數 885 閱讀 2490

class test():

def __init__(self):

pass

def say(self):

print("my name is " + self.name)

def setname(self,name):

print("呼叫了set函式")

self._name = name

def getname(self):

print("呼叫的get函式")

return self._name

def delname(self):

print("呼叫的del函式")

del self._name

name = property(getname,setname,delname,"這是乙個測試文字") #類變數才能生效

test = test()

test.name = "novjam" #呼叫了set函式,例項變數的賦值並不會影響類變數的值

print(test.name.__doc__) #列印出"這是乙個測試文字",test.name.__doc__無法取到"這是乙個測試文字"

print("*" * 20)

print(test.name)

print(type(test.name))

'''個人理解:

有個巨坑:_name換成name會進入遞迴呼叫!

例項變數會先匹配是否有同名的類變數,如果有,則會根據類變數的值對例項進行相應的操作。

類變數test.name是,對其重新賦值可能會導致get,set,del,doc方法失效,原因上述。

'''

python3 關於檔案的操作

使用open函式開啟乙個檔案。第乙個引數是檔案的路徑,如果檔案在程式當前路徑下,可以只寫檔名。file open filename.txt 可以通過新增第二個引數來決定檔案的開啟模式。寫模式,可以寫檔案內容,如果檔案不存在,會新建乙個檔案。open filename.txt w 讀模式,只能讀檔案內...

關於python3裝Matplotlib模組的經驗

花了一天終於裝好了matplotlib 模組,之前用了很多方法,但還是沒有安裝成功,一直報錯 直接用pip install matplotlib 和pip install matplotlib 的whl檔案也是顯示錯誤,的build tool 然後安裝,然後我發現安裝 matplotlib 的話,還...

python3安裝 Python3的安裝

1.anaconda安裝 2.安裝包安裝 3.linux下的命令列安裝 centos red hat 1 sudo yum install y sudo yum update3 sudo yum install y python35u python35u libs python35u devel p...