Python 从用户输入调用对象函数
Python call object function from user input
我有一个关于如何调用对象函数的问题。
以下是我如何使用用户输入调用函数:
Player1 = Player()
Player2 = Player()
INPUT = input()
if INPUT in locals().keys():
try:
print(locals()[INPUT]())
但我想调用例如Player1.status()
(你不需要知道它是做什么的,我只是想调用它)
它不起作用,我知道它为什么不起作用,但它是如何工作的?
调用 Player1
显然没有意义。
尝试像这样使用 getattr(object, name[, default]):
class Player:
def status(self):
return "Active"
player1 = Player()
INPUT = 'player1.status'
input_list = INPUT.split('.')
method_to_call = locals()[input_list[0]]
for i in input_list[1:]:
method_to_call = getattr(method_to_call, i)
method_to_call()
我有一个关于如何调用对象函数的问题。
以下是我如何使用用户输入调用函数:
Player1 = Player()
Player2 = Player()
INPUT = input()
if INPUT in locals().keys():
try:
print(locals()[INPUT]())
但我想调用例如Player1.status()
(你不需要知道它是做什么的,我只是想调用它)
它不起作用,我知道它为什么不起作用,但它是如何工作的?
调用 Player1
显然没有意义。
尝试像这样使用 getattr(object, name[, default]):
class Player:
def status(self):
return "Active"
player1 = Player()
INPUT = 'player1.status'
input_list = INPUT.split('.')
method_to_call = locals()[input_list[0]]
for i in input_list[1:]:
method_to_call = getattr(method_to_call, i)
method_to_call()