摘要:
多继承的正确打开方式:mixins机制 mixins机制核心:就是在多继承背景下尽可能地提升多继承的可读性 ps:让多继承满足人的思维习惯=》什么"是"什么 class Vehicle: pass class FlyableMixin: def fly(self): pass class Civil 阅读全文
摘要:
装饰器是在不修改被装饰对象源代码以及调用方式的前提下为被装饰对象添加 新功能的可调用对象 print(property) property是一个装饰器,是用来绑定给对象的方法伪造成一个数据属性 """ 成人的BMI数值: 过轻:低于18.5 正常:18.5-23.9 过重:24-27 肥胖:28-3 阅读全文
摘要:
class Student: school = 'Oldboy' ##### 该方法会在对象产生之后自动执行,专门为对象进行初始化操作,可以有任意代码,但一定不能返回非None的值 def __init__(self, name, sex, age): self.name = name self.s 阅读全文
摘要:
''' 面向过程: 核心是"过程"二字 过程的终极奥义就是将程序流程化 过程是"流水线",用来分步骤解决问题的 面向对象: 核心是"对象"二字 对象的终极奥义就是将程序"整合" 对象是"容器",用来盛放数据与功能的 类也是"容器",该容器用来存放同类对象共有的数据与功能 python这门语言到底提供 阅读全文
摘要:
一个python文件有两种用途 1、被当成程序运行 2、被当做模块导入 二者的区别是什么? impot导入模块在使用时必须加前缀"模块." 优点:肯定不会与当前名称空间中的名字冲突 缺点:加前缀显得麻烦 from ... import ...导入也发生了三件事 1、产一个模块的名称空间 2、运行fo 阅读全文
摘要:
算法:是高效解决问题的办法 算法之二分法 需求:有一个按照从小到大顺序排列的数字列表 需要从该数字列表中找到我们想要的那个一个数字 如何做更高效??? nums=[-3,4,7,10,13,21,43,77,89] find_num=10 nums=[-3,4,13,10,-2,7,89] nums 阅读全文
摘要:
一、叠加多个装饰器的加载、运行分析(了解***) def deco1(func1): ##### func1 = wrapper2的内存地址 def wrapper1(*args,**kwargs): print('正在运行 >deco1.wrapper1') res1=func1(*args,** 阅读全文
摘要:
一:知识储备 由于语法糖@的限制,outter函数只能有一个参数,并且该才是只用来接收 被装饰对象的内存地址 def outter(func): ##### func = 函数的内存地址 def wrapper(*args,**kwargs): res=func(*args,**kwargs) re 阅读全文
摘要:
一:储备知识 1、 *args, **kwargs def index(x,y): print(x,y) def wrapper(*args,**kwargs): index(*args,**kwargs) ##### ##### index(y=222,x=111) wrapper(y=222,x 阅读全文
摘要:
精髓:可以把函数当成变量去用 func=内存地址 def func(): print('from func') 1、可以赋值 f=func print(f,func) f() 2、可以当做函数当做参数传给另外一个函数 def foo(x): ##### x = func的内存地址 ##### pri 阅读全文