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

2024-06-16 13:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有可能有一个函数不仅表现得像@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'>

这是这个系统的一个基本例子。基本上,如果可能的话,我想要的是一种传递像实例数据这样的信息的方法,但是如果数据不在那里,这个函数就会使用必要的变量来执行它的程序。你知道吗

感谢所有能解决这个问题的人!!你知道吗


Tags: and数据实例函数示例applereturnobject
0条回答
网友
1楼 · 发布于 2024-06-16 13:27:04

任何类的任何方法都可以通过类的名称来调用。实例将自动将自身作为其任何方法的第一个参数传递。所以,如果你有

class Bar:
    def bar(self):
        return type(self)

你能做到的

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

你会得到

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

没有问题。当然,这是不受欢迎的;当为实例编写方法时,该方法的编写应该假定self是为其编写的类的实例。你知道吗

相关问题 更多 >