使用变量的Python打印方法

2024-06-16 11:23:54 发布

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

打印带有变量的方法时遇到问题。你知道吗

如果我这样做print (pet.__str__()),它就可以正常工作。不过,我尝试使用变量来循环使用这个方法,用一个变量来替换“pet”。然后我将它赋给一个变量并试图打印它。当我打印它时,它直接打印字符串pet.__str__(),而不是调用方法。我不确定我做错了什么。下面是我的代码的概述。谢谢

pet = Pet('Taz')

my_list = ["pet", "dog", "big_dog", "small_dog"]



my_string = ["animal_variable.__str__()", "animal_variable.kind", "animal_variable.color", "animal_variable.do_tricks()"]
sentence1 = []

sentence1 = my_string[0]
print (sentence1) #DEBUGGING*****************************************
print (sentence1.replace('animal_variable', my_list[0]))
print (type(sentence1))

***这是我得到的结果******

animal_variable.__str__()

pet.__str__(),

class 'str'

***如果我这样做,它会按预期工作,但是这不允许我循环使用列表中的不同变量

print (pet.__str__())

Tags: 方法字符串代码stringmyvariablelistprint
1条回答
网友
1楼 · 发布于 2024-06-16 11:23:54

尝试以下方法:

my_list = ["pet", "dog", "big_dog", "small_dog"]

for pet in map(Pet, my_list):
    print ("{}, Kind: {}, Color: {}\nTricks: {}".format(str(pet), pet.kind, pet.color, pet.do_tricks()))

如果已经有动物列表,只需将上面的for循环替换为:

for pet in my_list:

要使用的另一个方法是重写类的__str__方法,以返回上述内容。比如:

def __str__(self):
    return "Kind: {}, Color: {}\nTricks: {}".format(self.kind, self.color, self.do_tricks())

相关问题 更多 >