Python:断言变量是实例方法?
如何检查变量是否是实例方法? 我正在使用Python 2.5。
像这样的事情:
class Test:
def method(self):
pass
assert is_instance_method(Test().method)
How can one check if a variable is an instance method or not? I'm using python 2.5.
Something like this:
class Test:
def method(self):
pass
assert is_instance_method(Test().method)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您想知道它是否正是实例方法,请使用以下函数。 (它考虑在元类上定义并在类类方法上访问的方法,尽管它们也可以被视为实例方法)
通常检查这是一个坏主意。 能够与方法互换使用任何callable()更加灵活。
If you want to know if it is precisely an instance method use the following function. (It considers methods that are defined on a metaclass and accessed on a class class methods, although they could also be considered instance methods)
Usually checking for that is a bad idea. It is more flexible to be able to use any callable() interchangeably with methods.
inspect.ismethod
是你想要的看看你是否确实有一个方法,而不仅仅是你可以调用的东西。如果参数是方法、函数(包括 lambda )、具有 __call__ 的实例或类,则
callable
为 true。方法具有与函数不同的属性(例如
im_class
和im_self
)。 所以你要inspect.ismethod
is what you want to find out if you definitely have a method, rather than just something you can call.callable
is true if the argument if the argument is a method, a function (includinglambda
s), an instance with__call__
or a class.Methods have different properties than functions (like
im_class
andim_self
). So you want