2016-06-08 75 views
1

有没有办法在Python中的循环内使用方法?像下面这样:有没有办法在python的for循环中动态使用方法?

obj=SomePythonObject() 
list_of_methods=dir(obj) 
for i in list_of_methods: 
    try: 
     print obj.i()  
    except: 
     print i,'failed' 
+0

的[?我该怎么办可变的变量在Python(可能的复制http://stackoverflow.com/ questions/1373164/how-do-i-do-variable-variables-in-python)特别是第二个答案。 –

+1

这似乎有潜在的危险...更好的希望SomePythonObject没有deleteUsersHardDrive方法。 – Kevin

+0

我明白了 - 只是尝试一种新的Python API,它没有很好的文档,并且无法手动尝试所有的方法。感谢您指出,虽然 – CiaranWelsh

回答

2

是的,这是可能的,使用callablegetattr

obj=SomePythonObject() 
list_of_methods=dir(obj) 
for i in list_of_methods: 
    try: 
     item = getattr(obj, i, None) 
     if callable(item): 
      item()  
    except: 
     print i,'failed' 
+0

“item = getattr(obj,im item)”im item? – lonewaft

+0

@lonewaft谢谢。固定 –

相关问题