voici mon code:comment utiliser @ en python .. et le @property et le @classmethod
def a():
print 'sss'
@a()
def b():
print 'aaa'
b()
et le retraçage est:
sss
Traceback (most recent call last):
File "D:\zjm_code\a.py", line 8, in <module>
@a()
TypeError: 'NoneType' object is not callable
donc comment utiliser le « @ '
grâce
mis à jour
class a:
@property
def b(x):
print 'sss'
aa=a()
print aa.b
il print:
sss
None
comment utiliser @property
grâce
updated2
et classmethod:
class a:
@classmethod
def b(x):
print 'sss'
aa=a()
print aa.b
l'on print:
<bound method classobj.b of <class __main__.a at 0x00B2DC00>>
Je peux me tromper dans ce contexte ... mais c'est ce que je pense ... un décorateur ne devrait pas remplacer la fonction totalement .. il devrait être la décoration .. i. e dire *** aaa *** (*** à l'avant et est imprimé à l'aide d'un décorateur arrière) – SysAdmin
salut Michael, regardez le – zjm1126
mis à jour @SysAdmin, un décorateur peut faire en retournant une fonction qui appelle la fonction qui a été transmis; cependant, la sémantique réelle est que la fonction retournée prend le nom de la fonction. L'utilisation de @x def f(): .... est la même chose que def f(): ... suivi de f = x (f); –