请教一个问题

请教一个问题

我在Python core里看到一个property的装饰器写法,但是自己写的报类型错误,请帮忙解答一下,谢谢
class Foo(object):
    @property
    def pp():
        def fget(self):
            return "hello"

        def fset(self, val):
            print val
        return locals()

foo = Foo()
print foo.pp

出现这个错误
TypeError: pp() takes no arguments (1 given)
没人落落我呢
没看过@修饰语法过,不过,根据你的错误提示和代码,是你的使用错误。
你在定义pp函数为没有参数的函数,可你后面用的时候不是用类名.函数,而是用类的实例去使用它的方法,此时方法(pp函数)有接受一个参数,故产生错误。
pp(self)
那段代码是错的。

看这里,第二版的 errata:

QUOTE:
http://python.net/crew/wesc/cpp/errata2.htm

chapter13 的位置。

上面说,把 @property 删掉,类的最后加上 x=property(**x())


QUOTE:
原帖由 satoru 于 2008-8-2 19:53 发表
pp(self)

加self不行。


QUOTE:
原帖由 retuor 于 2008-8-3 01:24 发表
那段代码是错的。

看这里,第二版的 errata:



chapter13 的位置。

上面说,把 @property 删掉,类的最后加上 x=property(**x())

原来Core Python已经纠正这个错误了啊,谢谢你

想问一句,这里还是常规的使用方式,书上所谓的技巧行不通了?
哦,仔细的看了一下,达到的效果是一样的

再次感谢retuor