Python装饰器
装饰器(Decorators)是python的一个重要部分简单地说
他们是修改其他函数的功能的函数。
有助于让我们的代码更加简短 也更加pythonic
最难掌握的概念之一
------
一切皆对象
---------
def hi(name="yasoob"):
return "hi"+name
print(hi())
#output:'hi yasoob'
我们甚至可以将一个函数赋值给一个变量
比如greet=hi
#这里我们没有使用小括号 因为我们不是在调用hi函数
#而是将它放在greet变量里头 我们尝试运行下这个
print(greet())
#output:'hi yasoob'
如果我们删除旧的hi函数 看看会发生什么
del hi
print(hi())
#output:NameError
print(greet())
#output:'hi yasoob'
-----------
在函数中定义函数
---------
def hi(name="yasoob"):
print("现在你在hi()中")
def greet():
return "现在你在greet()函数"
def welcome():
return "现在你在welcome函数"
print(greet())
print(welcome())
print("现在你回到hi()函数里面")
hi()
#output:现在你在hi()中
现在你在greet()函数
现在你在welcome函数
现在你回到hi()函数里面
#上面展示了无论何时你调用hi() greet() welcome()将会同时被调用
#然后greet() 和welcome()函数在hi()函数之外是不能访问的
greet()
#output:NameError:name 'greet' is not defined
------------------------
可以嵌套的函数 函数也可以返回函数
--------
从函数从返回函数
---------
其实不需要再一个函数里去执行 另外一个函数 我们也可以将其 作为输出返回出来
def hi(name="yasoob"):
def greet():
return "现在你在greet()函数"
def welcome():
return "现在你在welcome()函数"
if name=="yasoob":
return greet
else:
return welcome
a=hi()
print(a)
----------