__del__方法的使用:
当一对象从内存空间中销毁,会自动调用__del__方法。
主要是清理资源的操作。文件资源,网络套接字资源,数据库连接资源等
__str__方法的使用:
在print()打印对象时,自动调用str下的打印内容。
__str__必须由返回值,只能返回字符串。
举例
eg:根据需求写出对象,属性和方法,并分类,转化成英文代表。
class Person: def __init__(self, name, weight): self.name = name self.weight = weight def __str__(self): return "姓名是%s,体重是%s" % (self.name, self.weight) def run(self): print("%s爱跑步,每次跑步减0.2公斤" % self.name) self.weight -= 0.2 def eat(self): print("%s是一个吃货体重增加0.5公斤" % self.name) self.weight += 0.5 Xiao_ming = Person("小明", 60) print(Xiao_ming) Xiao_ming.run() print(Xiao_ming)
属性都是添加到对象的内容空间中,self保存当前对象的引用地址。self.name操作的是对象内存空间中属性。
被使用到的类应该先被开发。
一个类创建的对象可以作为另一个类的属性。
身份运算符
is is是判断两个标识符是不是引用用一个对象,引用地址相等返回true否则false
is not 同上取反
---------------------------------------------------------------------------------------------------------------------
私有属性和私有方法定义方法:
__a 私有属性定义
__xxx(self): 私有方法
在类的外边无法直接访问私有属性和私有方法。
在类的内部可以正常使用self访问。
伪私有属性和伪私有方法
可以通过重整后的私有属性名和私有方法名,间接去访问 (python不会阻止)
可以通过对外方法间接访问私有属性,set_xxx() /get_xxx()
模块和包
import 模块名 特点:将模块中的所有的全局变量,函数,类全部导入,模块名.全局变量
import 模块名 as (别名给模块名起别名)
from 模块名 import 工具名(使用某个模块中的函数,类)
访问:直接用工具名
如果有重名的工具,后面的工具会直接覆盖前面的。如果要同时使用。用as起别名。
模块的搜索顺序
1.先从当前目录搜索指定的模块。
2.没有找到,再从指定的路径搜索系统模块。
开发模块时,不要和系统的模块文件名相同。
__name__可以做到,测试模块的时候可以执行,而在导入时不会执行,
if __name__ == "__main__":
包和导包
包里面可以包括多个模块
1.在同目录下新建个文件夹
2.新建个__init__.py
或者
1.直接新建(python package)
在__init__.py文件中加入
from.import 模块名1
from.import 模块名2
原文:https://www.cnblogs.com/dingh/p/13445872.html