這是我的代碼:如何使用@在Python ..和@property和@classmethod
def a():
print 'sss'
@a()
def b():
print 'aaa'
b()
和回溯是:
sss
Traceback (most recent call last):
File "D:\zjm_code\a.py", line 8, in <module>
@a()
TypeError: 'NoneType' object is not callable
所以如何使用「@ 「
感謝
更新
class a:
@property
def b(x):
print 'sss'
aa=a()
print aa.b
它打印:
sss
None
如何使用@property
感謝
updated2
和類方法:
class a:
@classmethod
def b(x):
print 'sss'
aa=a()
print aa.b
在它打印:
<bound method classobj.b of <class __main__.a at 0x00B2DC00>>
我在這種情況下可能是錯誤的..但這是我認爲的...裝飾者不應該完全取代功能..它應該裝飾它..我。說*** *** aaa ***(***在前面和後面打印使用裝飾) – SysAdmin 2010-04-28 02:10:57
嗨邁克爾,看看更新 – zjm1126 2010-04-28 02:26:05
@SysAdmin,裝飾可以做到這一點,通過返回一個函數,調用函數已通過;但是,實際的語義是返回的函數接管函數的名稱。使用@x def f():....與def f():...相同,後跟f = x(f); – 2010-04-28 02:31:50