-
Python property 函数 概念属性
所属栏目:[语言] 日期:2022-07-06 热度:130
前面章节中,我们一直在用类对象.属性的方式访问类中定义的属性,其实这种做法是欠妥的,因为它破坏了类的封装原则。正常情况下,类包含的属性应该是隐藏的,只允许通过类提供的方法来间接实现对类属性的访问和操作。 因此,在不破坏类封装原则的基础上,为[详细]
-
Python封装机制及达成方法
所属栏目:[语言] 日期:2022-07-06 热度:52
不光是 Python,大多数面向对象编程语言(诸如 C++、Java 等)都具备 3 个典型特征,即封装、继承和多态。其中,本节重点讲解 Python 类的封装特性,继承和多态会在后续章节给大家做详细讲解。 简单的理解封装(Encapsulation),即在设计类时,刻意地将一些[详细]
-
Python继承机制及其利用
所属栏目:[语言] 日期:2022-07-06 热度:85
Python 类的封装、继承、多态 3 大特性,前面章节已经详细介绍了 Python 类的封装,本节继续讲解 Python 类的继承机制。 继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想直接将现有类代码[详细]
-
Python父类方式重写 入门必读
所属栏目:[语言] 日期:2022-07-06 热度:114
前面讲过在 Python 中,子类继承了父类,那么子类就拥有了父类所有的类属性和类方法。通常情况下,子类会在此基础上,扩展一些新的类属性和类方法。 但凡事都有例外,我们可能会遇到这样一种情况,即子类从父类继承得来的类方法中,大部分是适合子类使用的,[详细]
-
Python super 函数 调用父类的创造方法
所属栏目:[语言] 日期:2022-07-06 热度:66
前面不止一次讲过,Python 中子类会继承父类所有的类属性和类方法。严格来说,类的构造方法其实就是实例方法,因此毫无疑问,父类的构造方法,子类同样会继承。 但我们知道,Python 是一门支持多继承的面向对象编程语言,如果子类继承的多个父类中包含同名的[详细]
-
Python __slots__ 限制类实例动态增加属性和方法
所属栏目:[语言] 日期:2022-07-06 热度:192
通过学习《Python类变量和实例变量》一节,了解了如何动态的为单个实例对象添加属性,甚至如果必要的话,还可以为所有的类实例对象统一添加属性(通过给类添加属性)。 那么,Python 是否也允许动态地为类或实例对象添加方法呢?答案是肯定的。我们知道,类[详细]
-
Python type 函数 动态创造类
所属栏目:[语言] 日期:2022-07-06 热度:93
我们知道,type() 函数属于 Python 内置函数,通常用来查看某个变量的具体类型。其实,type() 函数还有一个更高级的用法,即创建一个自定义类型(也就是创建一个类)。 type() 函数的语法格式有 2 种,分别如下: type(obj) type(name, bases, dict) 以上这[详细]
-
Python MetaClass元类解说
所属栏目:[语言] 日期:2022-07-06 热度:145
MetaClass元类,本质也是一个类,但和普通类的用法不同,它可以对类内部的定义(包括类属性和类方法)进行动态的修改。可以这么说,使用元类的主要目的就是为了实现在创建类时,能够动态地改变类中定义的属性或者方法。 不要从字面上去理解元类的含义,事实[详细]
-
什么叫做多态 Python多态及用法详解
所属栏目:[语言] 日期:2022-07-06 热度:133
在面向对象程序设计中,除了封装和继承特性外,多态也是一个非常重要的特性,本节就带领大家详细了解什么是多态。 我们都知道,Python 是弱类型语言,其最明显的特征是在使用变量时,无需为其指定具体的数据类型。这会导致一种情况,即同一变量可能会被先后[详细]
-
Python字符串对齐方法 ljust rjust 和center 细说
所属栏目:[语言] 日期:2022-07-05 热度:51
Python str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust()、rjust() 和 center() 方法,本节就来一一介绍它们的用法。 Python ljust()方法 ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。 ljust() 方法的基本格式[详细]
-
Python startswith 和endswith方式
所属栏目:[语言] 日期:2022-07-05 热度:95
除了前面介绍的几个方法外,Python 字符串变量还可以使用 startswith() 和endswith() 方法。 startswith()方法 startswith() 方法用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。此方法的语法格式如下: str.startswith(sub[,start[[详细]
-
Python字符串大小写转变 几种 函数及用法
所属栏目:[语言] 日期:2022-07-05 热度:115
Python 中,为了方便对字符串中的字母进行大小写转换,字符串变量提供了 3 种方法,分别是 title()、lower() 和 upper()。 Python title()方法 title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得[详细]
-
Python去除字符串中空格 删除指定字符 的几种方式
所属栏目:[语言] 日期:2022-07-05 热度:119
用户输入数据时,很有可能会无意中输入多余的空格,或者在一些场景中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符。 这里的特殊字符,指的是制表符(t)、回车符(r)、换行符(n)等。 Python 中,字符串变量提供了 3[详细]
-
Python format 格式化输出方案详解
所属栏目:[语言] 日期:2022-07-05 热度:155
前面章节介绍了如何使用 % 操作符对各种类型的数据进行格式化输出,这是早期 Python 提供的方法。自 Python 2.6 版本开始,字符串类型(str)提供了 format() 方法对字符串进行格式化,本节就来学习此方法。 format() 方法的语法格式如下: str.format(args)[详细]
-
Python encode 和decode方式 字符串编码转换
所属栏目:[语言] 日期:2022-07-05 热度:185
前面章节在介绍 bytes 类型时,已经对 encode() 和 decode() 方法的使用做了简单的介绍,本节将对这 2 个方法做详细地说明。 我们知道,最早的字符串编码是 ASCII 编码,它仅仅对 10 个数字、26 个大小写英文字母以及一些特殊字符进行了编码。ASCII 码做多只[详细]
-
Python dir 和help 协助函数
所属栏目:[语言] 日期:2022-07-05 热度:200
前面我们已经学习了很多字符串提供的方法,包括 split()、join()、find()、index() 等,但这远远不是它的全部方法。由于篇幅有限,本章只能给大家列举一些最常用的方法,至于其他的方法,读者可通过本节介绍的 dir() 和 help() 函数自行查看。 Python dir()[详细]
-
Python if else条件语句说明
所属栏目:[语言] 日期:2022-07-05 热度:126
前面我们看到的代码都是顺序执行的,也就是先执行第1条语句,然后是第2条、第3条一直到最后一条语句,这称为顺序结构。 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用,儿童因为年龄不够,没有权限使用。这时候程序就需[详细]
-
Python if else对缩进的需求
所属栏目:[语言] 日期:2022-07-05 热度:73
前面的《Python if else》一节展示了选择结构的三种基本形式,并给出了实例演示,但是大家在编写代码过程中仍然要注意一些细节,尤其是代码块的缩进,这对 if else 选择结构极其重要。 Python 是以缩进来标记代码块的,代码块一定要有缩进,没有缩进的不是代[详细]
-
Python if语句嵌套 进门必读
所属栏目:[语言] 日期:2022-07-05 热度:149
前面章节中,详细介绍了 3 种形式的条件语句,即 if、if else 和 if elif else,这 3 种条件语句之间可以相互嵌套。 例如,在最简单的 if 语句中嵌套 if else 语句,形式如下: if 表达式 1: if 表示式 2: 代码块 1 else: 代码块 2 再比如,在 if else 语[详细]
-
C++运算符重载基础教案
所属栏目:[语言] 日期:2022-07-04 热度:108
所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。 实际上,我们已经在不知不觉中使用了运算符重载[详细]
-
C++运算符重载时要遵循的准则
所属栏目:[语言] 日期:2022-07-04 热度:110
运算符重载是通过函数重载实现的,概念上大家都很容易理解,这节我们来说一下运算符重载的注意事项。 1) 并不是所有的运算符都可以重载。能够重载的运算符包括: + - * / % ^ | ~ ! = += -= *= /= %= ^= = |= = = == != = = || ++ -- , -* - () [] new new[][详细]
-
C++重载数学运算符 示范演示
所属栏目:[语言] 日期:2022-07-04 热度:103
四则运算符(+、-、*、/、+=、-=、*=、/=)和关系运算符(、、=、=、==、!=)都是数学运算符,它们在实际开发中非常常见,被重载的几率也很高,并且有着相似的重载格式。本节以复数类 Complex 为例对它们进行重载,重在演示运算符重载的语法以及规范。 复数[详细]
-
C++重载 和 输入和输出运算符 分析
所属栏目:[语言] 日期:2022-07-04 热度:68
在C++中,标准库本身已经对左移运算符和右移运算符分别进行了重载,使其能够用于不同数据的输入输出,但是输入输出的对象只能是 C++ 内置的数据类型(例如 bool、int、double 等)和标准库所包含的类类型(例如 string、complex、ofstream、ifstream 等)。[详细]
-
C++重载 下标运算符 细说
所属栏目:[语言] 日期:2022-07-04 热度:110
C++ 规定,下标运算符[ ]必须以成员函数的形式进行重载。该重载函数在类中的声明格式如下: 返回值类型 operator[ ] (参数); 或者: const 返回值类型 operator[ ] (参数) const; 使用第一种声明方式,[ ]不仅可以访问元素,还可以修改元素。使用第二种声明[详细]
-
C++重载++和-- 自增和自减运算符 剖析
所属栏目:[语言] 日期:2022-07-04 热度:52
自增++和自减--都是一元运算符,它的前置形式和后置形式都可以被重载。 上面的代码定义了一个简单的秒表类,m_min 表示分钟,m_sec 表示秒钟,setzero() 函数用于秒表清零,run() 函数是用来描述秒针前进一秒的动作,接下来是三个运算符重载函数。 先来看一[详细]
