python 如何使用get/set方法?[副本]

ie3xauqp  于 2023-09-29  发布在  Python
关注(0)|答案(2)|浏览(92)

此问题已在此处有答案

Why do I get "TypeError: Missing 1 required positional argument: 'self'"?(10个答案)
昨天关门了。
请指出我代码中的错误。

class Foo:
    def get(self):
        return self.a

    def set(self, a):
        self.a = a

Foo.set(10)
Foo.get()

类型错误:set()只接受2个位置参数(1个给定)

如何使用__get__()/__set__()

f2uvfpb9

f2uvfpb91#

它们是示例方法。你必须先创建一个Foo的示例:

f = Foo()
f.set(10)
f.get()    # Returns 10
js5cn81o

js5cn81o2#

如何使用__get__()/__set__()
如果你有Python3。Python2.6中的描述符不适合我。
Python v2.6.6

>>> class Foo(object):
...     def __get__(*args): print 'get'
...     def __set__(*args): print 'set'
...
>>> class Bar:
...     foobar = Foo()
...
>>> x = Bar()
>>> x.foobar
get
>>> x.foobar = 2
>>> x.foobar
2

简体中文

>>> class Foo(object):
...     def __get__(*args): print('get')
...     def __set__(*args): print('set')
...
>>> class Bar:
...     foobar = Foo()
...
>>> x = Bar()
>>> x.foobar
get
>>> x.foobar = 2
set
>>> x.foobar
get

相关问题