0

这是我正在研究的一个 python 类的片段。(抱歉,我不能详细说明。我的组织对这些事情有点坐立不安。

class my_class:

    @classmethod
    def make_time_string(cls, **kwargs):
    # does some stuff

    @classmethod
    def make_title(cls, **kwargs):
    # does some other stuff

    @classmethod
    def give_local_time(cls, **kwargs):
    # yet more stuff

    @classmethod
    def data_count(cls, **kwargs):
    # you guessed it

到目前为止,这么好,我应该想。但是我在使用这个类时遇到了麻烦。事实证明,原因是最后两个方法是未绑定的:

>>> my_class.make_time_string
<bound method classobj.make_time_string of <class __main__.my_class at 0x1cb5d738>>
>>> my_class.make_title
<bound method classobj.make_title of <class __main__.my_class at 0x1cb5d738>>
>>> my_class.give_local_time
<unbound method my_class.give_local_time>
>>> my_class.data_count
<unbound method my_class.data_count>

对不起,再次,我不能对内容更加坦率。但是谁能想到为什么最后两种方法应该不受约束而前两种方法(正确)绑定的原因?

4

1 回答 1

3

我试过你的代码,它对我有用。

所以,你需要提供一个更好的例子。

我最好的猜测是,您以某种方式打错字@classmethod或不再在类定义中或其他东西中。也许你正在覆盖classmethod装饰器?

这是我的代码:

class my_class:
    @classmethod
    def make_time_string(cls, **kwargs):
        pass

    @classmethod
    def make_title(cls, **kwargs):
        pass

    @classmethod
    def give_local_time(cls, **kwargs):
        pass

    @classmethod
    def data_count(cls, **kwargs):
        pass

print my_class.make_time_string
print my_class.make_title
print my_class.give_local_time
print my_class.data_count
于 2013-10-21T23:12:45.640 回答