gpt4 book ai didi

Python:检查方法是否是静态的

转载 作者:太空狗 更新时间:2023-10-29 17:24:00 24 4
gpt4 key购买 nike

假设下面的类定义:

class A:
def f(self):
return 'this is f'

@staticmethod
def g():
return 'this is g'

a = A()

所以f是普通方法,g是静态方法。

现在,我如何检查函数对象 a.f 和 a.g 是否是静态的? Python 中有“isstatic”函数吗?

我必须知道这一点,因为我有包含许多不同函数(方法)对象的列表,要调用它们,我必须知道它们是否期望“self”作为参数。

最佳答案

让我们做一些实验:

>>> import types
>>> class A:
... def f(self):
... return 'this is f'
... @staticmethod
... def g():
... return 'this is g'
...
>>> a = A()
>>> a.f
<bound method A.f of <__main__.A instance at 0x800f21320>>
>>> a.g
<function g at 0x800eb28c0>
>>> isinstance(a.g, types.FunctionType)
True
>>> isinstance(a.f, types.FunctionType)
False

所以看起来你可以使用types.FunctionType来区分静态方法。

关于Python:检查方法是否是静态的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8727059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com