这是我的问题:
class Student :
def __init__(self,name):
self.__name = name
def __print(self):
print(self.name)
st = Student("amir")
st.__print()
我正在为我的类定义一个名为 Student 的对象,并且我想将该对象的 print 方法定义为私有,但我无法调用此方法,并且在执行命令时,Python 给出了 AttributeError。
我在您的代码中发现了两个错误:
在
__print()
方法中,您正在调用 self.name
属性,但您在初始化中将其定义为 self.__name
。
另一个错误是__print()
方法是private,也就是说,不应该在类本身之外调用它。
我制作了一个代码版本,可以通过 self.__name
属性更正调用并保留私有 __print()
方法,该方法由名为 show_name()
的新方法调用。
class Student :
def __init__(self,name):
self.__name = name
def __print(self):
print(self.__name)
def show_name(self):
self.__print()
st = Student("amir")
st.show_name()