python中一切皆对象

2018-07-06  本文已影响0人  小白快加油

Python中的元类猴子补丁都是基于一切皆对象

函数和类也是对象,属于Python的一等公民

类可以直接实例化对象,为什么也是对象?

一等公民的特性:

1 赋值给一个变量

def ask(name='Tom'):
    print(name)# 定义一个函数

my_func = ask # 将函数赋值给一个变量
my_func('Tom')# 可以将变量当做函数来使用
class Person: # 定义一个类。再定义一个初始化的函数
    def __init__(self):
        print('Tom')

my_class = Person # 实例化类对象
my_class() # 调用类对象

说明类和函数都是对象。(可以赋值给一个变量)

2 可以添加都集合对象中

# 函数
def ask(name='Tom'):
    print(name)


obj_list = []
obj_list.append(ask)
for i in obj_list:
    print(i())
# 类
class Person:
    def __init__(self):
        print('Jack')


obj_list = []
obj_list.append(Person)
for i in obj_list:
    print(i())

4 当做函数的返回值
函数可以返回一个函数,实际上是装饰器的实现原理

def ask(name='Tom'):
    print(name)


def decorator_func():
    print('dec start')
    return ask

f = decorator_func() # decorator_func返回的是一个函数。这里接收一个函数
f('Jack')
上一篇下一篇

猜你喜欢

热点阅读