gpt4 book ai didi

python - 将变量内容转换为代码行

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

说我想做这样当我写:

class Bacon:
def __init__(self):
self.bacon = True
def eatBacon(self):
self.bacon = False
print self.bacon

bacon = Bacon()
x = bacon

y = raw_input("eatBacon")

然后说我想做这样的事情:

x.y()

这可能吗?

抱歉,如果这看起来像是一个愚蠢的问题,我才刚刚开始学习面向对象编程。

编辑:
假设我输入“eatBacon”作为输入。
我希望 x.y() 转换为 bacon.eatBacon()

最佳答案

可以,但不完全是那样。

在 Python 中,函数就像任何其他变量一样,因此您可以像对任何其他变量一样分配它们。利用这个,你可以有这样的代码:

def eat_bacon():
return 'Om nom nom.'

call_map = {'eat': eat_bacon} # here, I am using the name of method

y = raw_input('Type eat: ')
print call_map[y]()

但是,当您拥有一个对象时,情况就有些不同了。您可以使用 getattr 方法获取对象的属性,您可以这样使用它:

class OmNom(object):
def __init__(self):
self.bacon = True
def eat(self):
self.bacon = False
return 'Om nom nom'

monster = OmNom()
y = raw_input('Type eat: ')
print getattr(monster, y)()
# This is the same as
# z = getattr(monster, 'eat')
# Now z points to the eat method of the object, then
# z() will call that method.

关于python - 将变量内容转换为代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20487981/

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