No.1 一切皆对象
众所周知,Java中强调“一切皆对象”,但是Python中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function)也是对象,而且Python的代码和模块也都是对象。
Python中函数和类可以赋值给一个变量
Python中函数和类可以存放到集合对象中
Python中函数和类可以作为一个函数的参数传递给函数
Python中函数和类可以作为返回值
Step.1
# 首先创建一个函数和一个Python3.x的新式类class Demo(object): def __init__(self): print("Demo Class")# 定义一个函数def function(): print("function")# 在Python无论是函数,还是类,都是对象,他们可以赋值给一个变量class_value = Demofunc_value = function# 并且可以通过变量调用class_value() # Demo Classfunc_value() # function
Step.2
'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''# 将函数和类添加到集合中obj_list = []obj_list.append(Demo)obj_list.append(function)# 遍历列表for i in obj_list: print(i) # #
Step.3
# 定义一个具体函数def test_func(class_name, func_name): class_name() func_name()# 将类名和函数名传入形参列表test_func(Demo, function)# Demo Class# function
Step.4
# 定义函数实现返回类和函数def test_func2(): return Demodef test_func3(): return function# 执行函数test_func2()() # Demo Classtest_func3()() # function
No.2 关键字type、object、class之间的关系
在Python中,object的实例是type,object是顶层类,没有基类;type的实例是type,type的基类是object。Python中的内置类型的基类是object,但是他们都是由type实例化而来,具体的值由内置类型实例化而来。在Python2.x的语法中用户自定义的类没有明确指定基类就默认是没有基类,在Python3.x的语法中,指定基类为object。
'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''# object是谁实例化的?print(type(object)) # # object继承自哪个类?print(object.__bases__) # ()# type是谁实例化的?print(type(type)) # # type继承自哪个类?print(type.__bases__) #