怎样理解Python装饰器、描述符、__(双下划线的私有属性)?
3条回答 默认 最新
- ChaoLiTJ 2023-03-26 04:44关注本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报ChaoLiTJ 2023-03-26 04:47
Python 类中还有以双下划线开头和结尾的类方法(例如类的构造函数__init__(self)),这些都是 Python 内部定义的,用于 Python 内部调用。我们自己定义类属性或者类方法时,不要使用这种格式。
赞回复ChaoLiTJ 2023-03-26 04:58双下划线开头的方法不能被对象调用,否则会出错,例子:
class CLanguage:
def init(self,n):
self.name = n
def __getname(self):
return self.name
def delname(self):
self.name="xxx"
clang = CLanguage("init")
print(clang.name)
clang.name="Python教程"
print(clang.__getname())
报错!
但是双下划线开头并且以双下划线结尾的方法则可以被调用,例子:
class CLanguage:
def init(self,n):
self.name = n
def getname(self):
return self.name
def delname(self):
self.name="xxx"
clang = CLanguage("init")
print(clang.name)
clang.name="Python教程"
print(clang.getname())
输出:
init
Python教程赞回复