我有一个库,可以采取类功能或具有特定签名的正常功能。一类通常是这样的:如何在Python 3.x中检测未绑定方法的用法?
class MyObject(object):
def __init__(self, request):
self.request = request
def run(self):
return 'OK'
和函数的格式是这样的:
def my_func(request):
retrn 'OK'
的这种用法是:
add_runner(MyObject, attr='run')
add_runner(my_func)
但有时人利用这个错误并通过class功能到我的书架:
add_runner(MyObject.run)
我已经在Python 2.x中检测到这是一个未绑定的方法,并提出错误提醒他们他们正在使用我的API错误,但在Python 3.x中我找不到任何方法来真正检测到他们做错了。我错过了什么?
是的,但我想检测无效使用。所以如果'run'是一个实例方法(即通过'self'绑定到类的一个实例),那么它是无效的,因为我不想让自己通过它 – sontek
如果'run'是一个实例方法,'inspect.ismethod(objectInstance.run)'会返回'True' – levis501