Python中关于一切皆对象的深入理解

Python一切皆对象

与Java对比讲解一切皆对象

Python中所有东西都是对象,在Java中我们了解过,Python的面向对象更为彻底,Python一切皆对象的理念就是Python更为灵活的原因,其类与函数以及代码和模块都是对象,让其动态性得到充分体现

函数与类都是对象

可以赋值给变量

示例一:

def write(name="aaa"):
    print(name)


if __name__ == '__main__':
    myWrite = write
    myWrite()
    myWrite("God")

示例二:

class Person:
    def __init__(self):
        print("aaa")


if __name__ == '__main__':
    myClass = Person
    myClass()
    等价于:
    myClass = Person()

可以添加到集合对象中

def write(name="aaa"):
    print(name)

class Person:
    def __init__(self):
        print("aaa")


if __name__ == '__main__':
    objList = []
    objList.append(write)
    objList.append(Person)
    for item in objList:
        print(item())
结果分析:
aaa print函数结果
None 函数无返回值默认为NULL
aaa	 类中print操作
<__main__.Person object at 0x000001B26C4F6550> 

作为参数传递给函数

def write(name="aaa"):
    print(name)


class Person:
    def __init__(self):
        print("aaa")


def getType(item):
    print(type(item))


if __name__ == '__main__':
    objList = []
    objList.append(write)
    objList.append(Person)
    for item in objList:
        getType(item)

作为函数的返回值(由于装饰器的原理)

def write(name="aaa"):
    print(name)


def asParameter():
    print("start")
    return write


if __name__ == '__main__':
    myFunc = asParameter()
    myFunc("God")

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/106821112