-1 python python-3.x
我之前宣布了3个函数,这只是一个愚蠢的基于文本的cookie clicker-esque游戏.
dostuff={"" : turn() , "help" : helpf() , "invest" : invest() }
while done != True:<br>
do = input("What do you want to do? ")
do = do.lower()
if do == "" or do == "help" or do == "invest":
dostuff[do]
elif do == "quit":
done = True
Run Code Online (Sandbox Code Playgroud)
因此,当我使用dostuff["turn"]它什么都不做(该功能应该打印一些东西).我和其他选项有同样的问题.
必须在dict中省略括号,然后将其放在dict调用的末尾.你定义一个函数,它成为一个python对象.使用dict引用该对象,然后使用对象引用后跟括号调用该函数:
def one():
print("one")
def two():
print("two")
do_stuff = {
"one": one,
"two": two
}
do_stuff["one"]()
Run Code Online (Sandbox Code Playgroud)
打印:
"one"
Run Code Online (Sandbox Code Playgroud)
通过熟悉python的内置函数,您可以将字符串输入执行调用的概念更进一步.
https://docs.python.org/2/library/functions.html
例如,您可以使用getattr方法创建一个类并使用基于文本的输入调用其方法或属性:
class do_stuff():
def __init__(self):
pass
def one(self):
print("one")
def two(self):
print("two")
doer = do_stuff()
inp = "one"
getattr(doer, inp)()
Run Code Online (Sandbox Code Playgroud)
prints->
"one"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |