10 2023 档案

摘要:双层装饰器 def outter(func): def wrapper(*args, **kwargs): # wrapper是未来要运行的函数 # 此处加功能 res = func(*args, **kwargs) # func是被装饰的函数 return res return wrapper 三 阅读全文
posted @ 2023-10-30 12:35 hanyingshuo 阅读(7) 评论(0) 推荐(0) 编辑
摘要:可变长参数 形参 位置形参 默认形参 实参 位置实参 关键字实参 牢记 可变长参数之* def func(name, pwd, *abc): # *abc会接收多余的位置实参,尽量不要使用abc(变量名) def func(name, pwd, *args): # 应该使用args,这是约定俗称的 阅读全文
posted @ 2023-10-30 12:34 hanyingshuo 阅读(4) 评论(0) 推荐(0) 编辑
摘要:面向对象最本质解决的是: 提供可扩展性 类与对象 程序中必须先有类,再有对象 # 类中有属性,有方法 class Person: # 类属性 school = 'xxxx' # 对象的绑定方法,初始化方法完成对象的初始化 def __init__(self,name='hys',age=16): s 阅读全文
posted @ 2023-10-30 11:36 hanyingshuo 阅读(7) 评论(0) 推荐(0) 编辑
摘要:断点调试 一等公民:只要把一个东西赋值给一个变量,这个东西就叫一等公民 断点应该加在报错之前 def test3(): print("33333") def test(): def test2(): test3() print('i') return test2 print("xxxx") prin 阅读全文
posted @ 2023-10-30 11:36 hanyingshuo 阅读(5) 评论(0) 推荐(0) 编辑
摘要:issubclass(sub, super) 判断第一个类是不是第二个类的的子类; 是则返回True否则返回False class Foo: pass class Bar(Foo): pass # 以元组的方式查看Bar类的所以父类 print(Bar.__bases__) # 这里做判断 prin 阅读全文
posted @ 2023-10-30 11:36 hanyingshuo 阅读(3) 评论(0) 推荐(0) 编辑
摘要:反射的总结: 就是通过字符串来获取, 删除和设置对象的属性或方法 反射:反射是动态语言的一个重要特点,它允许你在运行时检查对象的属性和方法,以及修改它们。这为元编程和编写通用代码提供了支持。 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为 阅读全文
posted @ 2023-10-30 11:36 hanyingshuo 阅读(20) 评论(0) 推荐(0) 编辑
摘要:内置方法 __str__: 1.如果不重写__str__ return会打印出内存地址 2. print() 打印的时候, 会自动触发该函数的执行 如果重写了,会打印出你想要的 class Foo: def __init__(self, name): self.name=name def __str 阅读全文
posted @ 2023-10-30 11:36 hanyingshuo 阅读(12) 评论(0) 推荐(0) 编辑
摘要:调用父类方法的第一种方式:指名道姓的方式,跟继承关无关 # object写与不写,在py3中没有区别. # 有的人在py3中这么写,是为了向下兼容,使复制到py2中也能使用 class Person(object): def __init__(self,name,age): self.name=na 阅读全文
posted @ 2023-10-30 11:34 hanyingshuo 阅读(7) 评论(0) 推荐(0) 编辑
摘要:写一个类来继承 type 以后这种类都叫元类 自定义元类来控制类的产生: 可以控制类名,可以控制类的继承父类,控制类的名称空间 如果你要自定义元类,就必须继承type 练习一:加限制 控制类名必须用sd开头 class My_class(type): # def __init__(self, *ar 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(5) 评论(0) 推荐(0) 编辑
摘要:表面上是: class + 类名 会把类构造出来 实际上是: 元类实例化产生类 这个对象 # 类实例化产生对象, 一定是: 类名() # Person 类是有type实例化产生,传一堆参数 # type() 调用类的__init__方法 # type() # 如果想要控制类的产生过程,就要用 typ 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(24) 评论(0) 推荐(0) 编辑
摘要:网站:https://www.cnblogs.com/linhaifeng/articles/8029564.html 一等公民:只要把一个东西赋值给一个变量,这个东西就叫一等公民 什么是元类: Person类也是一个对象,那他一定是由一个类实例化得到,这个类,就叫元类 type是内置的一个元类,所 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(7) 评论(0) 推荐(0) 编辑
摘要:元类的层级关系 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(2) 评论(0) 推荐(0) 编辑
摘要:赠送元类 object.__new__ class Person(): def __init__(self, name, age): print('__init__') self.name = name self.age = age def __new__(cls, *args, **kwargs) 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(4) 评论(0) 推荐(0) 编辑
摘要:什么是元类? **最本质的概念: **能够实例化产生类的类,就是元类; type是python解释器内置的元类 或继承type这个类的类就是元类(自定义的元类) class关键字底层原理: 通过type类来实例化得到类 调用了type() 只传一个参数有什么用? 打印这个对象的类型 print(ty 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(9) 评论(0) 推荐(0) 编辑
摘要:查找顺序(代码) 类的属性查找顺序: 先从类自身找 >mro继承关系去父类中找 >去自己定义的元类中找 >type中 >报错 对象的属性查找顺序: 先从对象自身找 >去类中找 >mro继承关系去父类中找 >报错 class Mymeta(type): # 只有继承了type类才能称之为一个元类,否则 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(5) 评论(0) 推荐(0) 编辑
摘要:通过元类来控制类的调用过程 在__init__之前还有__call__方法, 首先Person加括号会调__call__产生了一个空的对象(裸体的人),再把它丢进__init__方法中穿上了衣服,完成了实例化 __call__ 控制类的调用过程, 实际上在控制:对象的产生 class My_clas 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(11) 评论(0) 推荐(0) 编辑
摘要:单例模式是一种设计模式 单例模式:整个过程中只有一个实例,所有生成分实例都指向同一块内存空间 方式一:通过类的绑定方法 当用户输入端口和地址,实例化产生新对象 当用户输入端口和地址,每次拿到的对象,是同一个 class Single: _single_model = None def __init_ 阅读全文
posted @ 2023-10-30 11:22 hanyingshuo 阅读(10) 评论(0) 推荐(0) 编辑
摘要:绑定方法 对象绑定方法 / 类的绑定方法 对象绑定方法: 定义在类内部,没有装饰器装饰的方法,都是对象的绑定方法 需要对象来调用,对象调用的时候,会把自身传入 class Person: def __init__(slef,name='my'): self.name=name self.age=17 阅读全文
posted @ 2023-10-30 11:07 hanyingshuo 阅读(24) 评论(0) 推荐(0) 编辑
摘要:什么是多态: 一类事物的多种形态这是其中的体现 比如: 动物类:猪,狗,人 多态基础 class Ani0mal: def speak(self): pass class Pig(Animal): def speak(self): print('哼哼哼') class Dog(Animal): de 阅读全文
posted @ 2023-10-30 11:05 hanyingshuo 阅读(5) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示