如何使用输入打印类的信息[Python3]

2024-10-01 15:35:20 发布

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

我真的不知道该如何表达这个问题,但以下是我基本上想做的:

class pokemon:
    def __init__(self, info):
        self.info=info

treecko=pokemon("fido")

poke=input()
print(poke.info)

很清楚我想做什么,但执行时不起作用,但是如果我在shell中键入:

treecko.info

当然,它会显示“fido”。我想建立一个大型数据库,列出所有口袋妖怪的信息,但为了便于论证,我尽量保持它的简单。我只想找出一个简单的方法来获取输入并将其粘贴在“.info”前面,以显示pokemon输入的信息,这样任何pokemon输入都将遵循相同的规则并显示信息。请尽快回复我,谢谢:)


Tags: selfinfo信息数据库input键入initdef
1条回答
网友
1楼 · 发布于 2024-10-01 15:35:20

您可以使用print(eval(poke).info),但我不建议使用dict,而是使用实例名称字符串存储为键,实例存储为值:

class pokemon:
    def __init__(self, info):
        self.info=info

treecko=pokemon("fido")

poke = input() 
d = {"treecko":treecko}    
print(d[poke].info)
fido

如果需要,可以将名称传递给构造函数,并具有存储每个实例名称的类属性dict:

class pokemon:
    instances_d = {}
    def __init__(self, info, name):
        self.name = name
        self.info = info
        pokemon.instances_d[name] = self

treecko = pokemon("fido","treecko")


treecko = pokemon("fido","treecko")
treecko1 = pokemon("dido","treecko1")

poke = input()
print(pokemon.instances_d[poke].info)
poke = input()
print(pokemon.instances_d[poke].info)
treecko
fido
treecko1
dido

相关问题 更多 >

    热门问题