博文配套视频课程:24小时实现从零到AI人工智能
函数皆对象
py 一切皆为对象,数据、函数、后续声明的类也是一个对象,而函数名称就是对象名称
def hello(name='python'):
print('name:' , name)
# 函数名就是变量名称
greet = hello
print(greet,hello)
hello('python')
greet('java')
del hello
# greet还是指向函数地址
greet('java')
# hello('python')
函数与闭包
既然函数也是一个对象,而且函数名就是对象的地址,那么我们可以通过返回函数名即可返回我们的函数对象。在Py中称为闭包
def hello(name='python'):
def java():
return '返回的是java()函数'
def python():
return '返回的是python()函数'
if name == 'java':
# 如果添加了括号则是调用函数
return java
else:
return python
a = hello('python')
print(a)
print(a())
a = hello('java')
print(a)
print(a())