python 给出 AttributeError

问题描述 投票:0回答:1

这是我的问题:

class Student :
    def __init__(self,name):
        self.__name = name
    def __print(self):
        print(self.name)
st = Student("amir")
st.__print()
  • 我的平台是Windows 10
  • 我使用IDE VS Code

This photo is my Error

我正在为我的类定义一个名为 Student 的对象,并且我想将该对象的 print 方法定义为私有,但我无法调用此方法,并且在执行命令时,Python 给出了 AttributeError。

python attributeerror
1个回答
0
投票

我在您的代码中发现了两个错误:

__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()
© www.soinside.com 2019 - 2024. All rights reserved.