美文网首页
python中一切皆对象

python中一切皆对象

作者: 小白快加油 | 来源:发表于2018-07-06 02:33 被阅读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')
    

    相关文章

      网友评论

          本文标题:python中一切皆对象

          本文链接:https://www.haomeiwen.com/subject/owomuftx.html