首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -使用变量的Print方法

Python -使用变量的Print方法
EN

Stack Overflow用户
提问于 2017-02-06 04:36:09
回答 1查看 81关注 0票数 0

我在打印带有变量的方法时遇到问题。

如果我使用print (pet.__str__()),它会像预期的那样工作。然而,我正在尝试使用变量遍历该方法,将"pet“替换为一个变量。然后,我将它赋给一个变量,并尝试打印它。当我打印它时,它直接打印字符串pet.__str__(),而不是调用该方法。我不确定我做错了什么。下面是我的代码的总体概述。谢谢

代码语言:javascript
复制
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))

*以下是我得到的输出*

代码语言:javascript
复制
animal_variable.__str__()

pet.__str__(),

class 'str'

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

代码语言:javascript
复制
print (pet.__str__())
EN

回答 1

Stack Overflow用户

发布于 2017-02-06 04:44:48

尝试以下方法:

代码语言:javascript
复制
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循环替换为:

代码语言:javascript
复制
for pet in my_list:

另一种可以使用的方法是重写类的__str__方法,返回上面的。类似于:

代码语言:javascript
复制
def __str__(self):
    return "Kind: {}, Color: {}\nTricks: {}".format(self.kind, self.color, self.do_tricks())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42057012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档