class CLanguage: #构造函数 def __init__(self,name): self.name = name #设置 name 属性值的函数 def setname(self,name): self.name = name #访问nema属性值的函数 def getname(self): return self.name #删除name属性值的函数 def delname(self): self.name="xxx" clang = CLanguage("C语言中文网") #获取name属性值 print(clang.getname()) #设置name属性值 clang.setname("Python教程") print(clang.getname()) #删除name属性值 clang.delname() print(clang.getname())运行结果为:
C语言中文网
Python教程
xxx
属性名=property(fget=None, fset=None, fdel=None, doc=None)
其中,fget 参数用于指定获取该属性值的类方法,fset 参数用于指定设置该属性值的方法,fdel 参数用于指定删除该属性值的方法,最后的 doc 是一个文档字符串,用于说明此函数的作用。class CLanguage: #构造函数 def __init__(self,n): self.__name = n #设置 name 属性值的函数 def setname(self,n): self.__name = n #访问nema属性值的函数 def getname(self): return self.__name #删除name属性值的函数 def delname(self): self.__name="xxx" #为name 属性配置 property() 函数 name = property(getname, setname, delname, '指明出处') #调取说明文档的 2 种方式 #print(CLanguage.name.__doc__) help(CLanguage.name) clang = CLanguage("C语言中文网") #调用 getname() 方法 print(clang.name) #调用 setname() 方法 clang.name="Python教程" print(clang.name) #调用 delname() 方法 del clang.name print(clang.name)运行结果为:
Help on property:
指明出处
C语言中文网
Python教程
xxx
name = property(getname, setname)这意味着,name 是一个可读写的属性,但不能删除,因为 property() 函数中并没有为 name 配置用于函数该属性的方法。也就是说,即便 CLanguage 类中设计有 delname() 函数,这种情况下也不能用来删除 name 属性。
name = property(getname) # name 属性可读,不可写,也不能删除 name = property(getname, setname,delname) #name属性可读、可写、也可删除,就是没有说明文档
本文链接:http://task.lmcjl.com/news/9650.html