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")