0. 思考
本质
元类
|
类
|
实例
- 面向对象
面向对象的设计思想是抽象出 Class,根据Class 创建 Instance。(类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”)
面向对象的抽象程度又比函数要高,因为一个Class 既包含数据,又包含操作数据的方法。
- 元类-类-实例
在 Python 中一切皆对象,它们要么是类的实例,要么是元类的实例,但是 type 除外。
类 type 就属于元类(Meta-classes)并且是 Python 内建的元类。
在 Python 中用元类来创建类,类创建对象,如下图所示:
“除非开发框架,否则不要编写元类。”
思考
- 程序
print('Hello world')
输出:Hello world
- 函数
def print_hello(words):
print(words)
print_hello('Hello world')
输出:Hello world
- 类
class print_message():
def __init__(self, word):
self.word = word
def say_hello(self):
print("I say " + self.word)
def say_bye(self):
print('Bye')
print_example = print_message('Hello world')
print_example.say_hello()
输出:I say Hello world
say_bye = print_example
say_bye.say_bye()
输出:Bye
结合上面简单三种打印的方法,可看出来两点:
- 从代码——函数——类这几种方法,仔细看,它们的形式其实高度一致(输入输出),只是组合数据甚至是功能是在不断提高。
- print 其实也是函数(python内置),所以各种形式的对象,不论是函数、模块、包还是什么,万变不离其宗。