摘要: with语法格式: with EXPR as Variable: BLOCK 语法解释: EXPR可以是任意表达式; as Variable是可选的 as的作用类似于=赋值。 一般的执行过程是这样的: 执行EXPR,生成上下文管理器context_manager; 获取上下文管理器的__exit() 阅读全文
posted @ 2022-11-04 20:40 yudai 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 一、绑定方法 1. 绑定方法的定义:凡是类中的方法或函数,默认情况下都是绑定给对象使用的。 类中不被任何装饰器装 装饰的方法或函数,默认情况下都是绑定给对象使用的,例如 def fun() 或 def fun(self) 用@classmethod装饰的方法是绑定到类上的 用@staticmetho 阅读全文
posted @ 2022-11-04 15:50 yudai 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 数字、字符串、元祖修改全局变量时需要加 global 列表和字典 默认为全局变量,则不需要 global 声明 nonlocal是将局部变量转为上一级函数的局部变量 # nonlocal使用 name = "我是最外层:aaa" # 全局变量 print(f"我是最外层name{name},id:{ 阅读全文
posted @ 2022-11-03 16:05 yudai 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 类变量总结: 第一: 作为类对象的变量每次创建一个新的实例对象时,类对象变量就多一个引用指向它 通过实例对象来修改类对象变量的取值,实际上是让实例对象的data指向了另外一块内存变量。实例对象是类对象的一个拷贝。 第二: 改变类对象的变量的值后,相应实例的值也会发生变化。 类对象的变量在实例中实际上 阅读全文
posted @ 2022-10-30 16:25 yudai 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 内部类 class MyOuter: age=18 def __init__(self,name): self.name=name class MyInner: def __init__(self,inner_name): self.inner_name=inner_name out=MyOuter 阅读全文
posted @ 2022-10-30 10:21 yudai 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 面向对象的三大特征 封装:提高程序的安全性 继承:提高代码的复用性(继承包括重写) 多态:提高程序的可扩展性和可维护性 三大特征的实现: 封装:将数据(属性)和行为(方法)包装到类对象 中继承:单继承、多继承 如果一个类没有继承任何类,则默认继承object 定义子类时,必须在其结构函数中调用父类的 阅读全文
posted @ 2022-10-30 00:08 yudai 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 通过类内部方法访问私有方法 # 类内方法 访问类和实例的私有方法 class test(object): def __init__(self): self.num = 10 self._num = 20 self.__num = 30 # 类内方法访问实例私有变量 def __secret(self 阅读全文
posted @ 2022-10-29 23:21 yudai 阅读(34) 评论(0) 推荐(0) 编辑
摘要: # 自由方法只能通过类对象来调用,如果用实例对象调用,传入的第一个参数就是实例对象本身 class test(object): old = "类变量,外部可访问。" # 自由方法 def freedom1(): # 参数中没有self 或 cls,也没有任何装饰器 print("该方法是 无参数的 阅读全文
posted @ 2022-10-29 18:08 yudai 阅读(44) 评论(0) 推荐(0) 编辑
摘要: # 类里的6种方法:实例方法、类方法、静态方法、魔法方法、自由方法、私有方法 class test(object): __new = "无法在外部访问" _new = "类对象和子类可以访问" new = "类变量 外部可访问" # 魔法方法 def __init__(self): self.num 阅读全文
posted @ 2022-10-29 17:37 yudai 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 类方法 定义:使用装饰器@classmethod。第一个参数为“cls”(也可为self),通过它来传递类的属性和方法(不能传实例的属性和方法,即使第一个参数为self,传递的也是类的属性和方法) 被调用:类和实例对象都可以调用类方法,不用传对象名 类名.类方法名(args) 实例名.类方法名(ar 阅读全文
posted @ 2022-10-29 13:23 yudai 阅读(791) 评论(0) 推荐(0) 编辑