慕课网课程:Python高级编程和异步IO并发编程
函数和类也是对象,属于Python的一等公民:
什么叫一等公民呢,具备以下特性
1.赋值给一个变量
2.可以添加到集合对象中
3.可以作为参数传递给函数
4.可以当做函数的返回值
def ask(name='bobby'):
print(name)
class Person:
def __init__(self):
print('bobby1')
1.赋值给一个变量
my_func=ask
my_func('bobby')
my_class=Person
my_class()
# 运行结果:
bobby
bobby1
2.可以添加到集合对象中
obj_list = []
obj_list.append(ask)
obj_list.append(Person)
for item in obj_list:
print(item())
# 运行结果:
bobby
None
bobby1
<__main__.Person object at 0x00B218D0>
3.可以作为参数传递给函数
def print_type(item):
print(type(item))
print_type(ask)
print_type(Person)
#运行结果
<class 'function'>
<class 'type'>
4.可以当做函数的返回值
def decorator_func():
print('dec start')
return ask
my_ask=decorator_func():
my_ask('tom')
#运行结果
dec start
tom