2-1 python中一切皆对象

慕课网课程: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

你可能感兴趣的:(AdvancePython)