在以下课程中:
class SomeClass(object):
def __init__(self, somedependency):
self._somedependency = somedependency
def do_something(self):
self._field = _somedependency.get_something()
是否有可能“知道”somedependency
在运行时有一个名为get_something()的函数,就像在编译时知道C#中构造函数参数的公共方法和属性一样?
编辑:我想获得somedependency
的成员,并为这些成员创建一个新类型,所以我需要执行一些操作,例如“我是在调用类中调用此构造函数参数的方法和属性。给我所有那些方法和参数,因为这些在调用类中可见“。由于我不知道构造函数参数的类型,因此我无法以静态语言的方式确定这一点。
答案 0 :(得分:0)
如果您只想验证是否存在已知方法,请使用func = getattr(_somedependency, 'get_something'); if func: func()
。
如果您想要更多检查,例如类或实例具有哪些方法,请查看内置的inspect module。