Python将对象作为函数进行访问(而不是调用函数)

2024-10-02 08:24:47 发布

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

我想做以下事情:我有一个容器类容器,它有 属性attr,它引用另一个类OtherClass。在

class OtherClass:
    def __init__(self, value): 
        self._value = value 

    def default(self): 
        retirn self._value 

    def another(self): 
        return self._value ** 2 

    def as_str(self): 
        return 'String: %s' % self._value

class Container: 
    def __init__(self, attr): 
        self.attr = OtherClass(attr)

我想:

^{pr2}$

我该怎么做?在


Tags: selfdefaultreturn属性initvaluedefas
3条回答

attr是什么意思?你不能两者兼得;要么是某个函数的返回值,要么是OtherClass的实例。在

OtherClassInteger继承如何?在

不能,除非OtherClass重写__int__(),然后通过int()得到整数值。在

不知道这是不是你需要的。在我看来是个奇怪的设计

>>> class OtherClass(int):
...     def __init__(self, value): 
...         self._value = value 
...     def another(self): 
...         return self._value ** 2 
... 
>>> class Container: 
...     def __init__(self, attr): 
...         self.attr = OtherClass(attr)
... 
>>> x=Container(2)
>>> x.attr
2
>>> x.attr.another()
4

仅仅因为你使用了类并不意味着它是一个愚蠢的gnibbler

相关问题 更多 >

    热门问题