12 2024 档案
摘要:python通过dataclasses模块提供了dataclass(数据类)对象,适合我们想定义一些类,并且让他们主要用于存放数据。 dataclass: 是一个函数,用做装饰器,把一个类变成数据类。 数据类可以让我们通过简单的方法定义实例属性以及对其赋值,并使用类型提示标明其类型。 通过一些元类的
阅读全文
摘要:in 操作符:也叫成员检测符。 item in obj, 返回True或False。 obj需要是一个可迭代对象(iterable), 或者实现了__contains__方法的自定义类。 def gen_fun(): yield 1 yield 2 yield 3 print(3 in [1,2,3
阅读全文
摘要:可迭代对象(iterable): 一般像list, tuple, dictionary这种,内部需要实现__iter__方法,该方法用于创建一个迭代器。 迭代器(iterator): 由可迭代对象创建,在for循环刚开始时自动创建,也可以通过iter(iterable)内置函数来创建。 其内部需要实
阅读全文
摘要:abc: 是 Python 标准库中的一个模块,主要用于定义抽象基类(Abstract Base Classes)。抽象基类提供了一种机制,允许我们在面向对象编程中定义接口,以确保子类实现特定的方法或属性。 示例代码: from abc import ABC, abstractmethod clas
阅读全文
摘要:在python中一切皆对象,实例对象是由类创建的,类(又称类对象)是由元类创建的。 通常我们用type函数来检查一个对象是什么类型。 print(type(1)) print(type('a')) print(type([1, 2, 3])) class Foo: pass foo = Foo()
阅读全文
摘要:装饰器(decorator): 装饰器本质上使用的机制是闭包,只是语法上更方便,是python提供的语法糖。 回顾闭包 让我们先回顾一下闭包的简单情况: import time def decorator(fun): print('装饰器开始执行') def wrapper(): start_tim
阅读全文
摘要:描述器(又称描述符)(Descriptor) 描述器:如果一个类中实现了__get__, __set__, __delete__三个方法中的任何一个,那么这样的类的实例就称为描述器。 当某一个类的类属性是一个描述器的时候,通过这个类或者类的实例来访问、修改或删除这个类属性时,就会分别触发描述器的__
阅读全文