python学习手册笔记——28.类代码编写细节

时间:2022-05-07 00:58:30

00.class语句使对象的创建者并且使一个隐含的赋值运算——执行时,它会产生类对象,并把其引用值存储在前面所使用的变量名。


01.方法位于class语句的主体内,是由def语句建立的函数对象。从抽象的视角来看,方法替实例对象提供了要继承的行为。方法的工作方式与函数:方法的第一个参数总是接收方法接收方法调用的隐形主体,也就是实例对象。

02.每次使用object.attr形式的表达式时(object实例或类对象),Python会从头至尾搜索命名空间树,先从对象开始,寻找所能找到的第一个attr.这包含在方法中对self属性的引用。

03.属性树的构造:
*实例属性是由对方内self属性进行赋值运算而生成的
*类属性是通过class语句内的语句(赋值语句)而生成的
*超类的连接时通过class语句手好痒的括号内列出而生成的。

程序代码会在内存中创建对象树,这个树时通过属性继承搜索的。调用类会创建记忆了这个类的新的实例。执行class语句会创建新的类,而列在class语句首行括号内的类则成为超类。即使self属性位于类的方法内每个属性一弄,都会出发由下而上的树搜索。

04.命名空间
*无点号运算的变量名与作用域相对应
*点号的属性名使用的时对象的命名空间
*有些作用域会对对象的命名空间进行初始化(模块和类)。

05.简单变量名
*赋值语句(X = value):使变量名成为本地变变量:在当前作用域内,创建或改变变量名X,除非声明它使全局变量。
*引用(X):在当前作用域内搜索变量名X,之后使在任何以及所有的嵌套的函数中,然后使在当前的全局作用域中搜索,最后在内置作用域中搜索。

06.属性名称:对象命名空间
赋值语句(object.X = value):在进行点号运算的对象的命名空间内创建或修改属性名X,并没有其他作用。继承树的搜索只发生在属性引用时,而不是属性的赋值运算时。
*引用(object.X):就给予类的对象而言,会在对象内搜索属性名X,然后再器上所有可读取的类

07.Python再响应对象的__doc__属性自动保存。

08.模块
——是数据/逻辑包
——通过编译Python文件或C扩展来创建
——通过导入来使用

09.类
——实现新的对象
——由class语句创建
——通过调用来使用
——总是位于一个模块中

10.运算符重载只是意味着类方法中拦截内置的操作——当类的实例出现再内置操作中,Python自动调用你的方法,并且你的方法的返回值编程了响应操作的结果。