gpt4 book ai didi

python - 无法打印类的输出

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:15 24 4
gpt4 key购买 nike

我能得到一些帮助吗?我一直在 python 3.3 上尝试 OOP。但是,我在打印输出时遇到了问题。这是一个例子:

class pet(object):
number_of_legs = 0
def sleep (self):
print('Zzzzz')
def count_legs(self):
print ('I have %s legs' %(self.number_of_legs))

nemo = pet ()
nemo.number_of_legs = 4
nemo.count_legs
nemo.sleep

输出:

bound method pet.count_legs of <__main__.pet object at 0x033D4230>
bound method pet.sleep of <__main__.pet object at 0x033D4230>

任何克服此问题的技巧都会有很大帮助。

谢谢。

最佳答案

您需要使用 () 实际调用方法,即使没有参数也是如此:

nemo.count_legs()
nemo.sleep()

方法实际上只是一个可调用的属性;您使用 instance.attribute 获取方法对象本身,并使用圆括号 instance.attribute() 调用它。

另外,请注意 number_of_legs,正如您目前拥有的那样,是一个类属性,由所有实例共享。假设不同的宠物可以有不同数量的腿,我会将其设为实例属性,您可以在初始化时执行此操作:

class Pet:

def __init__(self, legs):
self.legs = legs

def sleep(self):
print("Zzz")

def count_legs(self):
print("I have {0.legs} legs.".format(self))

(类按约定以大写字母命名/PEP-008str.format% 不同,未弃用)。您现在可以制作例如

nemo = Pet(4)

关于python - 无法打印类的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23320390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com