网站开发设计需求seo 网站太小
news/
2025/10/1 11:57:34/
文章来源:
网站开发设计需求,seo 网站太小,清远市网站建设,免费建站排名## 多态pythonOOP中标准解释:多个不同类型对象,可以响应同一个方法,并产生不同结果,即为多态多态好处:只要知道基类使用方法即可,不需要关心具体哪一个类的对象实现的,以不变应万变,提高灵活性/扩展性多态,一般都需要一个管理多态的方法,方法的函数就是类的对象,在方法中通过点…## 多态pythonOOP中标准解释:多个不同类型对象,可以响应同一个方法,并产生不同结果,即为多态多态好处:只要知道基类使用方法即可,不需要关心具体哪一个类的对象实现的,以不变应万变,提高灵活性/扩展性多态,一般都需要一个管理多态的方法,方法的函数就是类的对象,在方法中通过点语法,调用每个对象的那个相同的方法.## 封装:python封装即是隐藏类中的一些不能被外界访问的方法、属性封装语法就是在名称前加双下划线即可。为什么封装之后外界无法访问python中是通过变形的方式实现封装的在名称带有双下滑线的变量名字前添加单下划线_类名实现的。意味着可以通过在封装的属性、方法前加_类名但是一般不会这么做。#***变形仅在类的定义阶段发生一次 后续再添加的带有双下划线的任何属性都不会变形 就是普通属性***property:通过property用于访问私有属性的值property#getter # 用于访问私有属性的值 也可以访问普通属性defsalary(self):return self.__salarysalary.setter#用来设置私有属性的值 也可以设置普通属性defsalary(self,new_salary):self.__salary new_salarysalary.deleter#用来设置私有属性的值 也可以删除普通属性defsalary(self):#print(can not delete salary!)del self.__dict__[_Teacher__salary]#del self.__salary#再对私有属性进行增删改查的时候会自动调用上面对于的装饰的方法。property的另一种使用场景 计算属性什么是计算属性 一个属性 它的值不是固定死的 而是通过计算动态产生的## 内置函数__str, del,python类中的__str__该方法在object中有定义 默认行为 返回对象类型以及地址__main__.person object at在将对象转为字符串时执行在print时也会执行__str__否则无法打印#***注意:返回值必须为字符串类型***子类可以覆盖该方法来完成 对打印内容的自定义例classPerson:def __init__(self,name,age):self.namenameself.ageage#将对象转换为字符串时执行def __str__(self):print(str run)return my name is %s , age is %s %(self.name,self.age)pPerson(rose,20)str(p)#str runprint(p)#str run my name is rose , age is 20类中__del__: 也称之为析构函数(构造反义词从有到无)当对象被删除前会自动调用 该方法声明时候会删除对象?1.程序运行结束 解释器退出 将自动删除所有数据2.手动调用del 时也会删除对象#假设要求每一个person对象都要绑定一个文件classPerson:def __init__(self,name,path,modert,encodingutf-8):self.namenameself.file open(path,mode,encodingencoding)#读取数据的方法defread_data(self):returnself.file.read()def __del__(self):print(del run!)self.file.close()总结:__del__该函数用于 在对象删除前做一些清理操作## 反射(反省):python面向对象中的反省 指的是,一个对象必须具备,发现自身属性,以及修改自身属性的能力;一个对象在设计初期,可能考虑不够周全后期需要删除或修改已经存在的属性, 和增加属性反射就是通过字符串来操作对象属性涉及到的方法hasattr 判断是否存在某个属性hasattr(对象字符串)判断是否有跟字符串同名的属性名getattr 获取某个属性的值getattr(对象字符串)获取跟字符串同名的属性值/方法名这时可以用变量接受存放的就是属性值或者方法的地址。可以通过该变量执行该方法。setattr 新增或修改某个属性delattr 删除某个属性例classMY_CMD:defdir(self):os.system(dir)defipconfig(self):os.system(ipconfig)cmdMY_CMD()whileTrue:name input(请输入要执行的功能:)ifhasattr(cmd,name):methodgetattr(cmd,name)print(method)method()else:print(sorry this method is not exists....!)## 动态导入模块python直接写import称之为静态导入 但这建立在一个基础上:提前已经知道有这个模块动态导入 指的是 在需要的任何时候 通过指定字符串类型的包名称来导入需要的模块importimportlibmkimportlib.import_module(m_name)#m_name 是一个代表模块路径的字符串如build_house.my_decoration.Lightmk 即导入成功的模块该方式常用在框架中 因为框架设计者不可能提前预知后续需要的模块和类
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923819.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!