gpt4 book ai didi

python - 同时使用类函数和静态方法? (Python)

转载 作者:太空宇宙 更新时间:2023-11-03 17:49:12 25 4
gpt4 key购买 nike

是否有可能有一个函数,其行为不仅像@staticmethod包装的函数,而且像任何其他类函数一样,这样如果通过实例调用该函数,就可以传递来自实例的数据?

示例:

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 Bar:
def bar(self):
return type(self)

你可以做到

thing = Bar()
print(thing.bar())
print(Bar.bar(2))

你会得到

<class '__main__.Bar'>
<class 'int'>

没有任何问题。这当然是令人不悦的。当为实例编写方法时,应将 self 假定为为其编写的类的实例。

关于python - 同时使用类函数和静态方法? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29334504/

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