将对象属性绑定到方法

-1 投票
1 回答
1056 浏览
提问于 2025-04-18 09:41

这是一个关于Python的基础问题。很久以前我见过类似的东西,我相信那是在Python里。请问这可能吗,还是我搞错了?

我在寻找一种方法来实现这个;下面的例子只是想象中的代码,说明它可能的工作方式,但实际上并不能这样做。

class SomeClass:
    def someMethod(self):
        return self.name + ' ' + self.id

    name = 'A name'
    id = '37'
    fullClassName = someMethod  # reading this attribute would actually call the method
>>> a = SomeClass()
>>> print a.fullClassName  # no parentheses as it's not a method call
A name 37

1 个回答

2

你在寻找一个属性

>>> class SomeClass:
...     name = 'A name'
...     id = '37'
...
...     @property
...     def someMethod(self):
...         return self.name + ' ' + self.id
...
...     fullClassName = someMethod
...
>>> a = SomeClass()
>>> print a.fullClassName
A name 37
>>>

或者简单来说

>>> class SomeClass:
...     name = 'A name'
...     id = '37'
...
...     @property
...     def fullClassName(self):
...         return self.name + ' ' + self.id
...
>>> a = SomeClass()
>>> print a.fullClassName
A name 37
>>>

撰写回答