[英]Property setter gives an error in Python
我是Python的新手。 我嘗試學習Python中的@property裝飾器。 這是我的代碼:
#!/usr/bin/python
# -*- coding: utf-8 -*-
class C(object):
"""docstring for C"""
def __init__(self, foo):
self._foo = foo
@property
def foo(self):
return self._foo
@foo.setter
def foo(self, value):
self._foo = value
return self.foo
c = C(1)
print c.foo
print c.foo(2)
在上面的代碼中,第一個print
給我“ 1”。 當我嘗試將值設置為foo時,出現以下錯誤:
Traceback (most recent call last):
File "sub.py", line 23, in <module>
print c.foo(2)
TypeError: 'int' object is not callable
如何解決這個錯誤。 我的代碼有什么問題?
setter與賦值運算符=
:
c.foo = 2
c.foo(2)
如何工作的另一個示例:
In [7]: c = C(lambda x: x*x)
In [8]: c.foo(2)
Out[8]: 4
c.foo(…)
首先獲取 c.foo
的值,然后調用該函數。
你是說要做
c.foo = 2
您可以像使用屬性一樣使用屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.