-
Python __slots__ 限制类实例动态增加属性和方法
所属栏目:[语言] 日期:2022-07-07 热度:81
通过学习《Python类变量和实例变量》一节,了解了如何动态的为单个实例对象添加属性,甚至如果必要的话,还可以为所有的类实例对象统一添加属性(通过给类添加属性)。 那么,Python 是否也允许动态地为类或实例对象添加方法呢?答案是肯定的。我们知道,[详细]
-
Python type 函数 动态创造类
所属栏目:[语言] 日期:2022-07-07 热度:74
我们知道,type() 函数属于 Python 内置函数,通常用来查看某个变量的具体类型。其实,type() 函数还有一个更高级的用法,即创建一个自定义类型(也就是创建一个类)。 type() 函数的语法格式有 2 种,分别如下: type(obj) type(name, bases, dict) 以上[详细]
-
Python MetaClass元类解说
所属栏目:[语言] 日期:2022-07-07 热度:105
MetaClass元类,本质也是一个类,但和普通类的用法不同,它可以对类内部的定义(包括类属性和类方法)进行动态的修改。可以这么说,使用元类的主要目的就是为了实现在创建类时,能够动态地改变类中定义的属性或者方法。 不要从字面上去理解元类的含义,事[详细]
-
什么叫做多态 Python多态及用法详解
所属栏目:[语言] 日期:2022-07-07 热度:115
在面向对象程序设计中,除了封装和继承特性外,多态也是一个非常重要的特性,本节就带领大家详细了解什么是多态。 我们都知道,Python 是弱类型语言,其最明显的特征是在使用变量时,无需为其指定具体的数据类型。这会导致一种情况,即同一变量可能会被先[详细]
-
Python生成器说明
所属栏目:[语言] 日期:2022-07-06 热度:159
前面章节中,已经详细介绍了什么是迭代器。生成器本质上也是迭代器,不过它比较特殊。 以 list 容器为例,在使用该容器迭代一组数据时,必须事先将所有数据存储到容器中,才能开始迭代;而生成器却不同,它可以实现在迭代的同时生成元素。 也就是说,对于[详细]
-
何为迭代器 Python迭代器及其用法
所属栏目:[语言] 日期:2022-07-06 热度:167
前面章节中,已经对列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器做了详细的介绍。值得一提的是,这些序列式容器有一个共同的特性,它们都支持使用 for 循环遍历存储的元素,都是可迭代的,因此它们又有一个别称,即迭代器。 例[详细]
-
什么是运算符重载 Python可重载运算符有什么
所属栏目:[语言] 日期:2022-07-06 热度:105
前面章节介绍了 Python 中的各个序列类型,每个类型都有其独特的操作方法,例如列表类型支持直接做加法操作实现添加元素的功能,字符串类型支持直接做加法实现字符串的拼接功能,也就是说,同样的运算符对于不同序列类型的意义是不一样的,这是怎么做到的[详细]
-
Python issubclass和isinstance函数 检查类别
所属栏目:[语言] 日期:2022-07-06 热度:151
Python 提供了如下两个函数来检查类型: issubclass(cls, class_or_tuple):检查 cls 是否为后一个类或元组包含的多个类中任意类的子类。 isinstance(obj, class_or_tuple):检查 obj 是否为后一个类或元组包含的多个类中任意类的对象。 通过使用上面两个[详细]
-
查视对象内部所有属性名和属性值组成的字典
所属栏目:[语言] 日期:2022-07-06 热度:180
在 Python 类的内部,无论是类属性还是实例属性,都是以字典的形式进行存储的,其中属性名作为键,而值作为该键对应的值。 为了方便用户查看类中包含哪些属性,Python 类提供了 __dict__ 属性。需要注意的一点是,该属性可以用类名或者类的实例对象来调用[详细]
-
Python __new__ 办法详解
所属栏目:[语言] 日期:2022-07-06 热度:129
__new__() 是一种负责创建类实例的静态方法,它无需使用 staticmethod 装饰器修饰,且该方法会优先 __init__() 初始化方法被调用。 一般情况下,覆写 __new__() 的实现将会使用合适的参数调用其超类的 super().__new__(),并在返回之前修改实例。例如: cl[详细]
-
Python __repr__ 方法 显现属性
所属栏目:[语言] 日期:2022-07-06 热度:121
前面章节中,我们经常会直接输出类的实例化对象,例如: class CLanguage: pass clangs = CLanguage() print(clangs) 程序运行结果为: __main__.CLanguage object at 0x000001A7275221D0 通常情况下,直接输出某个实例化对象,本意往往是想了解该对象的基[详细]
-
Python __del__ 方式 销毁对象
所属栏目:[语言] 日期:2022-07-06 热度:110
我们知道,Python 通过调用 __init__() 方法构造当前类的实例化对象,而本节要学的 __del__() 方法,功能正好和 __init__() 相反,其用来销毁实例化对象。 事实上在编写程序时,如果之前创建的类实例化对象后续不再使用,最好在适当位置手动将其销毁,释放[详细]
-
Python __dir__ 用法 列出对象的全部属性 方法 名
所属栏目:[语言] 日期:2022-07-06 热度:197
前面在介绍 Python 内置函数时,提到了 dir() 函数,通过此函数可以某个对象拥有的所有的属性名和方法名,该函数会返回一个包含有所有属性名和方法名的有序列表。 举个例子: class CLanguage: def __init__ (self,): self.name = C语言中文网 self.add =[详细]
-
Python枚举类定义和运用
所属栏目:[语言] 日期:2022-07-06 热度:115
一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。 针对这种特殊的类,Python 3.4 中新增加了 Enum 枚举类。也就是说,对于这些实例[详细]
-
Python变量作用域 全局变量与局部变量
所属栏目:[语言] 日期:2022-07-06 热度:188
所谓作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。 变量的作用域由变量的定义位置决定,在不同位置定义的变量,它的作用[详细]
-
Python局部函数及用法 包括nonlocal关键字
所属栏目:[语言] 日期:2022-07-06 热度:160
通过前面的学习我们知道,Python 函数内部可以定义变量,这样就产生了局部变量,有读者可能会问,Python 函数内部能定义函数吗?答案是肯定的。Python 支持在函数内部定义函数,此类函数又称为局部函数。 那么,局部函数有哪些特征,在使用时需要注意什么[详细]
-
何为闭包 Python闭包 初学者必读
所属栏目:[语言] 日期:2022-07-06 热度:191
前面章节中,已经对 Python 闭包做了初步的讲解,本节将详解介绍到底什么是闭包,以及使用闭包有哪些好处。 闭包,又称闭包函数或者闭合函数,其实和前面讲的嵌套函数类似,不同之处在于,闭包中外部函数返回的不是一个具体的值,而是一个函数。一般情况下[详细]
-
Python return函数返回值解说
所属栏目:[语言] 日期:2022-07-06 热度:155
到目前为止,我们创建的函数都只是对传入的数据进行了处理,处理完了就结束。但实际上,在某些场景中,我们还需函数将处理的结果反馈回来,就好像主管向下级员工下达命令,让其去打印文件,员工打印好文件后并没有完成任务,还需要将文件交给主管。 Python[详细]
-
Python None 空值 及用处
所属栏目:[语言] 日期:2022-07-06 热度:197
在 Python 中,有一个特殊的常量 None(N 必须大写)。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。 这里的空值并不代表空对象,即 None 和 []、 不同: None is [] False None is False 另外,对于所有没有 return 语句的函[详细]
-
Python函数默认参数设置 超级具体
所属栏目:[语言] 日期:2022-07-06 热度:159
我们知道,在调用函数时如果不指定某个参数,Python 解释器会抛出异常。为了解决这个问题,Python 允许为参数设置默认值,即在定义函数时,直接给形式参数指定一个默认值。这样的话,即便调用函数时没有给拥有默认值的形参传递参数,该参数可以直接使用定[详细]
-
Python函数关键字参数与用法
所属栏目:[语言] 日期:2022-07-06 热度:153
目前为止,我们使用函数时所用的参数都是位置参数,即传入函数的实际参数必须与形式参数的数量和位置对应。而本节将介绍的关键字参数,则可以避免牢记参数位置的麻烦,令函数的调用和参数传递更加灵活方便。 关键字参数是指使用形式参数的名字来确定输入的[详细]
-
Python函数值传递和引用传递包括形式参数和实际参数的差别
所属栏目:[语言] 日期:2022-07-06 热度:194
通常情况下,定义函数时都会选择有参数的函数形式,函数参数的作用是传递数据给函数,令其对接收的数据做具体的操作处理。 在使用函数时,经常会用到形式参数(简称形参)和实际参数(简称实参),二者都叫参数,之间的区别是: 形式参数:在定义函数时,[详细]
-
何为位置参数 Python位置参数
所属栏目:[语言] 日期:2022-07-06 热度:121
位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致。 实参和形参数量必须一致 在调用函数,指定的实际参数的数量,必须和形式参数的数量一致(传多传[详细]
-
Python函数 函数定义 函数调用 用法剖析
所属栏目:[语言] 日期:2022-07-06 热度:157
Python 中函数的应用非常广泛,前面章节中我们已经接触过多个函数,比如 input() 、print()、range()、len() 函数等等,这些都是 Python 的内置函数,可以直接使用。 除了可以直接使用的内置函数外,Python 还支持自定义函数,即将一段有规律的、可重复使[详细]
-
Python字符串对齐方法 ljust rjust 和center 细说
所属栏目:[语言] 日期:2022-07-05 热度:138
Python str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust()、rjust() 和 center() 方法,本节就来一一介绍它们的用法。 Python ljust()方法 ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。 ljust() 方法的基本格[详细]