2024年08月07日 在 with 声明的代码段中,我们可以做一些对象的开始操作和退出操作,还能对异常进行处理。这需要实现两个魔术方法: __enter__ 和 __exit__。 1、定义了当使用 with 语句的时候,会话管理器在块被初始创建时要产生的行为。请注意,__enter__ 的返回值与 with 语句的目标或者 as 后的名字绑定。 __exit__(self, exception_type, exception_value, tracebac

魔法函数

2024年08月07日 1、在包里__all__是控制可以导入的模块列表,即声明哪些模块可以导入。 2、包里的__all__是在__init__文件中声明的,而不是写在哪个模块中。 一个包里有多个模块,其中all声明的模块可以导入,不声明的模块不能导入。 python包中__all__的使用实例 from demo import * #导入包里面的所有模块 hhhh.fun1()  #调用hhhh模块的fun1功能,输出“这是功能1” my_module.

python包 魔法函数

2024年08月07日 说明 1、_len_调用len()方法时,就是调用对象内的_len_()方法 2、_getitem_调用object[item]方法时,就是调用对象内的_getitem_()方法,字典专用 3、_setitem_调用object[item]=xxx方法时,就是调用对象内的_setitem_()方法,字典专用 实例 class TestContainer:     def __init__(self):         self.my

集合 魔法函数

2024年08月07日 说明 1、利用_slots__类属性,可以将实例属性存储在元zu中,大大节省了存储空间。 2、所有属性都必须定义为__slots__元组,子类还必须定义__slots__。 实例如果支持弱引用,需要在__weakref中添加__slots__。 实例 class Vector2d:     __slots__ = ('__x', '__y')       typecode = 'd'

魔法函数

2024年08月07日 1、第一个参数cls是一个正在实例化的类。 若要获取当前类的实例,则方法应在当前类的__new__()方法语句中调用当前类的父类的__new__()方法。举例来说,如果当前类是直接从object继承的,那么当前类的__new__()方法返回的对象应该是: class Foo(object):     def __new__(cls,*args,**kwagrs):         return object.__new__(cls,

魔法函数

2024年08月07日 你在写 Python 代码的时候,应该时常会看到一些比较特殊的函数,它们是用两根杠杠作为开头和结尾的,比如你最常见到的初始化方法: 当你去实例化这个对象的时候,这个 init 方法就特么直接被执行了。 这是为啥呢?就是因为它有「魔法」。 你可以使用 dir() 将你的对象传进去调用一波,你会发现这么一个现象: 看到没,我们在写类的时候,并没有去写这些方法啊,为什么会有这些玩意啊? 其实这些是 Python 已经内置好了的方法,而且都是

魔法函数

2024年08月06日 我们在定义一些变量或者方法的时候,常常会用到下划线,在 Python 中,下划线可是很有用处的哟,比如变量,有些是一个下划线开头的(_xx),有些是两个下划线开头的(__xx),有些是在名称的结尾添加下划线的(xx_),还有一些方法我们常常看到两个下划线开头和结尾的(__xx__) 等等… 为什么要这么写呢?它们都代表什么意思?我们以后如何定义好这些名称呢?那么接下来就是: 学习 Python 的正确姿势 1、只有一个下划线

魔法函数

2024年08月06日 说明 让类的实例的行为表现的像函数一样,你可以调用它们,将一个函数当做一个参数传到另外一个函数中等等。这是一个非常强大的特性,其让Python编程更加舒适甜美。对象后面加括号,触发执行。 1、__call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()() 2、__call__ 在那些类的实例经常改变状态的时候会非常有效。调用这个实例是一种改变这个对象状态的直接和优雅的做法。 实例 # __call__ class R

魔法函数

2024年08月06日 使用注意 1、init()方法在创建一个对象时默认被调整,不需要调整。 2、init(self)中的self参数不需要开发者传输,python解释器会动员传输当前对象。 实例 class Washer(): def __init__(self) -> None: self.height=1000 self.width=10 def wash(self): print(

魔法函数

2024年08月06日 作用不同 1、__new__ 是用来创建类并返回这个类的实例,而 __init__ 只是将传入的参数来初始化该实例。 __init__() 初始化方法 和 __new__(),通过类创建对象时,自动触发执行。 概念不同 2、__new__() 创建对象时调用,会返回当前对象的一个实例 __init__() 创建完对象后调用,对当前对象的一些实例初始化,无返回值 实例 # __init__ 、 __new__ class Student(

魔法函数

2024年08月06日 使用注意 1、__name__ 属性可以做到,测试模块的代码 只在测试情况下被运行,而在被导入时不会被执行。 2、__name__ 是Python的一个内置属性,记录着一个字符串。 如果是被其他文件导入的,__name__ 就是 模块名。 如果是当前执行的程序 __name__ 是 __main__。 实例 # 导入模块 # 定义全局变量 # 定义类 # 定义函数   # 在代码的最下方 def main():     #

魔法函数

2024年08月06日 说明 1、_setattr_设定未知的属性。 如果这个对象没有这个属性的话,设定未知的属性的话,就会调用这个方法。 2、_getattr_找未知的属性。 如果这个对象没有这个属性的话,找未知的属性的话,就会调用这个方法。 3、_getattribute_无论是访问存在还是不存在的属性,都访问了getatribute这个函数。 实例 class Foo(object):     def __init__(self):         

魔法函数

2024年08月06日 1、__dict__是属性,不是方法。 2、若使用实例对象调用__dict__,则输出由所有实例属性组成的字典。 3、用类对象调用__dict__将输出由所有实例方法、类属性和类方法组成的字典。 实例 class PoloBlog: sum = 0 def __init__(self, name): self.name = name def test(self): pass

魔法函数

2024年08月06日 python获取比特币 在这个浩瀚的网络世界中,仿佛有着一座座宝藏山藏匿在那里,想要去找寻它们,就需要像一位勇敢的冒险家一样,运用自己的智慧和技巧去探寻。而对于比特币爱好者来说,获取比特币就如同寻宝一般刺激而又充满挑战。而要想更加高效地获取比特币,Python这把神奇的魔法棒就是你最好的助手。 有了Python,就仿佛是拥有了一双慧眼,可以通过网络获取关于比特币的信息,抓住时机进行交易。Python强大的网络爬虫工具让你能够轻松地从各大

python基础

2024年08月06日 魔法般的Python语句 从大象到小毛驴 有一天,我学习Python的过程就像从大象走到小毛驴一样,一开始啥也不懂,就跟看天书一样,什么都不明白。但是慢慢地啊,学了几个语句,就觉得自己跟大神一样了!比如下面这段: “`python name = “小明” print(“你好,” + name) “` 就像小毛驴晃着小尾巴一样,我也开始制作属于自己的“魔法”了,哈

python基础