Class 同时使用函数和静态方法? (Python)
Class Function and Static Method at the Same Time? (Python)
是否有可能有一个函数不仅表现得像@staticmethod 包装函数,而且表现得像任何其他 class 函数,这样如果通过实例调用函数,来自实例的数据可以通过了吗?
示例:
class Amazing(object):
@static_and_class
def func(x):
return type(x)
apple = Amazing()
>>> print(apple.func())
>>> <class 'Amazing'>
>>> print(Amazing.func(2))
>>> <class 'int'>
这是系统的一个基本示例。基本上,我想要的是一种尽可能传递实例数据等信息的方法,但如果数据不存在,该函数将采用必要的变量来执行其程序。
感谢任何能解决这个问题的人!!
任何 class 的任何方法都可以通过 class 的名称调用。实例将自动将自身作为其任何方法的第一个参数传递。所以,如果你有类似
class Bar:
def bar(self):
return type(self)
你可以做到
thing = Bar()
print(thing.bar())
print(Bar.bar(2))
你会得到
<class '__main__.Bar'>
<class 'int'>
没问题。当然,这是不受欢迎的。在为实例编写方法时,应该这样编写方法,即假定 self
是为其编写的 class 的实例。
是否有可能有一个函数不仅表现得像@staticmethod 包装函数,而且表现得像任何其他 class 函数,这样如果通过实例调用函数,来自实例的数据可以通过了吗?
示例:
class Amazing(object):
@static_and_class
def func(x):
return type(x)
apple = Amazing()
>>> print(apple.func())
>>> <class 'Amazing'>
>>> print(Amazing.func(2))
>>> <class 'int'>
这是系统的一个基本示例。基本上,我想要的是一种尽可能传递实例数据等信息的方法,但如果数据不存在,该函数将采用必要的变量来执行其程序。
感谢任何能解决这个问题的人!!
任何 class 的任何方法都可以通过 class 的名称调用。实例将自动将自身作为其任何方法的第一个参数传递。所以,如果你有类似
class Bar:
def bar(self):
return type(self)
你可以做到
thing = Bar()
print(thing.bar())
print(Bar.bar(2))
你会得到
<class '__main__.Bar'>
<class 'int'>
没问题。当然,这是不受欢迎的。在为实例编写方法时,应该这样编写方法,即假定 self
是为其编写的 class 的实例。