请帮帮我。我是python的初学者

2024-03-28 10:27:42 发布

您现在位置:Python中文网/ 问答频道 /正文

class Check(object):
    def __init__(self, num1, num2):
        self.num1 = num1
        self.num2 = num2

    @staticmethod
    def main():
        check = Check(int(input(' : ')), int(input(' : ')))

        print(check.num1)
        print(check)

Check.main()

您好,我已经学习Python大约30天了。 我想打印我在类中输入的所有对象。 “print(check.num1)”这个方法有效,但“print(check)”不起作用。 请让我知道如何打印所有对象


Tags: 对象selfinputobjectinitmaindefcheck
1条回答
网友
1楼 · 发布于 2024-03-28 10:27:42

print(check)不起作用,因为python不知道如何打印您创建的对象,所以它会打印类的名称及其在内存中的位置,例如<__main__.Check object at 0x0000017D003F0888>

如果要告诉解释器如何打印对象,需要使用__str__magic方法,如下所示:

class Check(object):
    def __init__(self, num1, num2):
        self.num1 = num1
        self.num2 = num2

    @staticmethod
    def main():
        check = Check(int(input(' : ')), int(input(' : ')))

        print(check.num1)
        print(check)
    
    def __str__(self):
        return "num1={}, num2={}".format(self.num1, self.num2)

Check.main()

还有:你是从官方教程学习的吗?如果不是,我建议您检查一下https://docs.python.org/3/tutorial/index.html

相关问题 更多 >