Python中@符号实例详解
1. 装饰器
@
符号在Python中常用于装饰器,在函数定义前使用,用于修饰函数,改变函数的行为,如添加日志、计时器等等。
下面是一个简单的装饰器示例:
def log(func):
def wrapper(*args, **kw):
print('call %s():' % func.__name__)
return func(*args, **kw)
return wrapper
@log
def now():
print('2021-07-02')
now()
输出结果如下:
call now():
2021-07-02
说明 log
函数被成功地装饰在 now
函数上了,现在 now
函数被 log
函数修饰了,可以在 now
函数执行前后加上一些日志记录。
2. 语法糖
@
符号还可以用于Python中的语法糖,例如 @property
、@classmethod
等。这些语法糖可以方便地实现一些特定功能。
下面是一个 @property
语法糖的示例:
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
print('Getting name...')
return self._name
@name.setter
def name(self, value):
print('Setting name to', value)
self._name = value
p = Person('Bob')
print(p.name)
p.name = 'Alice'
print(p.name)
输出结果如下:
Getting name...
Bob
Setting name to Alice
Getting name...
Alice
可以看到,使用 @property
可以将方法作为属性来调用,@name.setter
则可以实现属性的赋值操作。这样,我们就可以通过简单的语法糖来实现属性的getter、setter操作了。
总结
@
符号作为装饰器和语法糖的标记,在Python中被广泛应用。装饰器用于修饰函数,改变函数的行为,可以实现日志、计时器等功能;语法糖则可以实现一些特定功能,例如属性的getter、setter操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中@符号实例详解 - Python技术站