摘要:容器:容器是一种把多个元素组织在一起的数据结构,容器...
阅读全文
摘要:迭代器(Iterator):迭代器可以看作是一个特殊...
阅读全文
摘要:Python中可迭代对象(Iterable)并不是指...
阅读全文
摘要:Python中的迭代是指通过重复执行的代码处理相似的...
阅读全文
摘要:《Python中使用百分号占位符的字符串格式化方法中...
阅读全文
摘要:老猿在《Python中repr(变量)和str(变量...
阅读全文
摘要:一、三引号是指三个单引号或者三个双引号;二、Pyth...
阅读全文
摘要:Python中使用百分号占位符的字符串格式化方法中%...
阅读全文
摘要:Python中repr(变量)和str(变量)都返回...
阅读全文
摘要:一、 object类内置方法__str__和函数st...
阅读全文
摘要:老猿前期写的博文都是就Python学习的知识...
阅读全文
摘要:isdecimal 、isdigit、isnumer...
阅读全文
摘要:Python内置功能非常强大,在字符串内置函数中提供...
阅读全文
摘要:1、判断s是否都是大写字母:s.isupper();...
阅读全文
摘要:当我们在交互环境下输入对象时会直接显示对象的信息,交互环境下输入print(对象)或代码中print(对象)也会输出对象的信息,这些输出信息与两个内置方法:__str__方法和__repr__方法有关,这两个方法Python中的所有类型(新式类)的基类object中实现了这个通用的功能,本节详细分析
阅读全文
摘要:当我们在交互环境下输入对象时会直接显示对象的信息,交...
阅读全文
摘要:Python中splitlines([keepend...
阅读全文
摘要:定义了函数:def add(a,b):s=‘a+b’...
阅读全文
摘要:上节介绍了使用实例的__dict__查看实例的自定义...
阅读全文
摘要:一、 语法释义调用方法:实例. __dict__属性...
阅读全文
摘要:在Python3中使用format和format_m...
阅读全文
摘要:生成器函数严格意义来说只是一种形式象函数但世界为生成...
阅读全文
摘要:生成器是一个特殊的迭代器,它保存的是算法,每次调用...
阅读全文
摘要:一、 语法释义__class__属性很简单,直接返回...
阅读全文
摘要:优先级数字越高表示优先级越高,有关运算符的详细介绍请...
阅读全文
摘要:使用format方法,在格式控制中进行控制,具体控制参数为:{:#016X}其中:大括号表示该处从后面的format的参数中取值冒号表示格式控制开始0表示长度不足16位补016...
阅读全文
摘要:参数带星号表示支持可变不定数量的参数,这种方法叫参数收集。星号又可以带1个或2个,带1个表示按位置来收集参数,带2个星号表示按关键字来收集参数。1、带一个星号的参数收集模式:这...
阅读全文
摘要:__new__方法是Python新式类引入的,通常用于控制生成一个新实例的过程。它是类级别的静态方法,是在创建实例对象前执行,如果自定义类中没有重写该方法,则Python自动调...
阅读全文
摘要:终于介绍完了__init__方法和__new__方法,接下来轻松一下,本节介绍类中内置的__bases__属性。一、 语法释义Python 为所有类都提供了一个 bases 属...
阅读全文
摘要:mysql的官网上提供了两个mysql共享版本的安装,一个20M,一个373.4M。二者的区别是前者是联网安装,当安装时必须能访问互联网,后者是离线安装使用的,一般建议下载离线...
阅读全文
摘要:动态编译函数compile调用语法如下:compile(source, filename, mode, flags=0, dont_inherit=False, optimiz...
阅读全文
摘要:第8.8节 Python使用__new__方法和构造方法__init__完成类实例化的过程详解前面章节介绍了Python类中的__new__方法和构造方法__init__,并通...
阅读全文
摘要:一、 引言前面章节介绍了类中的构造方法和__new__方法,并分析了二者执行的先后顺序关系。__new__方法在__init__方法前执行,__new__方法执行后才返回实例对...
阅读全文
摘要:出现这种情况是调用object类__new__方法参数传递多了导致:一般是使用了类似super().new(cls,*args,**kwargs)或object.new(sel...
阅读全文
摘要:上节《第8.5节 Python类中的__new__方法和构造方法__init__关系深入剖析:执行顺序及参数关系案例详解》通过案例详细分析了两个方法的执行顺序,不知大家是否注意...
阅读全文
摘要:上节介绍了__new__()方法这个比构造方法还重要的方法的语法,本节通过案例来详细剖析__new__()方法的细节以及它与构造方法之间的关系。一、 案例说明本节以圆Cir类为例来说明,为了说明问题只定义基本的类信息,只包含一个成员半径radius,两个方法,就是__n...
阅读全文
摘要:一、 引言在本博前面的内容都对构造方法__init__进行了介绍,也在前面章节引入了__new__方法,但老猿认为__new__方法比构造方法__init__更应该属于构造方法。这是因为在Python中,__new__方法是在实例对象创建时执行的,而构造方法__init...
阅读全文
摘要:第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 一、 引言上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没有重写构造方法,Python将会给出默认的__init__方法。上述介绍适用...
阅读全文
摘要:前面一节介绍了构造方法定义的语法,并进行了语法解释说明,本节将通过案例来说明构造方法参数传递及返回值的情况。一、 案例说明本节定义一个汽车类,它有四个实例变量:wheelcount, power,oilcostperkm,totaldistance,分别对应轮子数、动力...
阅读全文
摘要:一、 引言凡是面向对象设计的语言,在类实例化时都有构造方法,很多语言的构造方法名与类名一致,Python中类的构造方法比较特殊,必须是__init__特殊方法。二、 语法释义1. 语法:__init__(self,*args,**kwargs)其中:1) ...
阅读全文
摘要:上章花了近三十章节介绍类的知识,本章估计内容也比较多,讲完这些,其实还有更多。为什么这么多类有关的知识呢,这是因为在Python里面一切皆对象,就连整型、浮点数、字符串这些比较常规的类型都是作为类来实现的。类就是Python的特点之一,Python为了支持类的灵活性、扩展性以...
阅读全文
摘要:本章详细介绍了Python协议、多态与“鸭子类型”、类、类实例变量、类变量、实例方法、类方法、静态方法、类继承、抽象类、property函数和@property装饰器定义属性访问方法等内容,内容比较多,学习完本章,应该对Python的类知识了解比较全面,掌握“鸭子类型...
阅读全文
摘要:上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明。一、 案例说明本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只定义了长度属性的操作。包括三个完整的装饰器,如果大家想试一下少一个操作方法的装饰...
阅读全文
摘要:第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解一、 引言Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰器相关的内容,在后面将单独的章节来介绍。Python总共包括三个内置装饰器(注意...
阅读全文
摘要:第7.25节 Python案例详解:使用property函数定义与实例变量同名的属性会怎样? 一、 案例说明我们上节提到了,使用property函数定义的属性不要与类内已经定义的普通实例变量重名,如果是重名会发生什么呢?本案例通过这个例子一是说明重名可能产生的后果,也想...
阅读全文
摘要:第7.24节 Python案例详解:使用property函数定义属性简化属性访问代码实现一、 案例说明本节将通过一个案例介绍怎么使用property定义快捷的属性访问。案例中使用Rectangle类:1、 在类内定义了两个私有属性长度和宽度self.__lengt...
阅读全文
摘要:第7.23节 Python使用property函数定义属性简化属性访问的代码实现一、 背景 在本章前面章节中,我们介绍了类相关的知识,并举例进行了说明,在这些例子中会定义一些形如 “get属性”、“set属性”的实例属性的存取方法,当实例数据的属性是私有时,这...
阅读全文
摘要:第7.22节 Python中使用super调用父类的方法前面章节很多地方都引入了super方法,这个方法就是访问超类这个类对象的。由于super方法的特殊性,本节单独谈一谈super方法。一、super简介1. super方法返回一个“super”类型的对象,注...
阅读全文
摘要:上两节介绍了Python抽象类的真实子类的定义和使用,本节介绍另一种抽象类的实现方法:虚拟子类方法。一、 相关概念虚拟子类是将其他的不是从抽象基类派生的类”注册“到抽象基类,让Python解释器将该类作为抽象基类的子类使用,因此称为虚拟子类,这样第三方类不需要直接继承自...
阅读全文
摘要:第7.20节 案例详解:Python抽象类之真实子类 上节介绍了Python抽象基类相关概念,并介绍了抽象基类实现真实子类的步骤和语法,本节结合一个案例进一步详细介绍。一、 案例说明本节定义了图形的抽象基类Shape,要求提供求面积和周长的抽象方法,然后派生两个子类长方...
阅读全文
摘要:第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类一、 引言前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不是以继承关系为标准,在各种调用中,不会显式地指定对象必须包含哪些方法才能用作参数...
阅读全文
摘要:第7.18节 案例详解:Python类中装饰器@staticmethod定义的静态方法上节介绍了Python中类的静态方法,本节将结合案例详细说明相关内容。一、 案例说明本节定义了类StaticMethod,在类中定义了静态方法stmethod、类方法clsmethod...
阅读全文
摘要:第7.17节 Python类中的静态方法装饰器staticmethod 定义的静态方法深入剖析静态方法也是通过类定义的一种方法,一般将不需要访问类属性但是类需要具有的一些能力可以静态方法提供。一、 静态方法定义1. 语法@ staticmethod def 方法...
阅读全文
摘要:第7.16节 案例详解:Python中classmethod定义的类方法上节介绍了类方法定义的语法以及各种使用的场景,本节结合上节的知识具体举例说明相关内容。一、 案例说明本节定义的一个类ClsMethod,在类内定义了类方法clsmeth1、getobjcnt,演示...
阅读全文
摘要:第7.15节 Python中classmethod定义的类方法详解类中的方法,除了实例方法外,还有两种方法,分别是类方法和静态方法。本节介绍类方法的定义和使用。一、 类方法的定义在类中定义的方法,默认是实例方法,要定义类方法,需要用到单独的语法。1. 语法:@c...
阅读全文
摘要:第7.14节 Python类中的实例方法详析一、 实例方法的定义在本章前面章节已经介绍了类的实例方法,实例方法的定义有三种方式:1. 类体中定义实例方法第一种方式很简单,就是在类体中定义,所有在类中定义的方法默认是实例方法。定义实例方法与定义函数基本相同,只是Py...
阅读全文
摘要:第7.13节 案例详解:Python类变量上节介绍了类变量的定义和使用方法,并举例进行了说明。本节将通过一个更完整的例子来说明。一、 定义函数dirpdef dirp(iter): return [i for i in dir(iter) if not i.starts...
阅读全文
摘要:第7.12节 可共享的Python类变量一、 引言在上节已经引入介绍了类变量和实例变量,类体中定义的变量为类变量,默认属于类本身,实例变量是实例方法中定义的self对象的变量,对于每个实例都是独有数据,而类变量是该类所有实例共享的属性和方法。二、 类变量的定义方式...
阅读全文
摘要:上节老猿介绍了实例变量的访问方法,本节结合一个具体案例详细介绍实例变量访问。本节定义一个Vehicle类(车),它有三个实例变量self.wheelcount(轮子数)、self.power(动力)、self.totaldistance(累计行驶里程),但在构造方法内只定义了...
阅读全文
摘要:一、 引言在前面章节已经引入介绍了类变量和实例变量,类体中定义的变量为类变量,默认属于类本身,实例变量是实例方法中定义的self对象的变量,对于每个实例都是独有数据,而类变量是该类所有实例共享的属性和方法。二、 实例变量的定义方式1. Python变量的本质...
阅读全文
摘要:上节介绍了Python中类的封装机制,本节结合一个具体例子进行详细说明。我们定义一个Person类,其内部有姓名、年龄和类型三个实例变量,并定义了相关的存取方法:class Person(): def __type(self): if self._age<...
阅读全文
摘要:前面章节已经介绍了Python中的多态和继承,本节将介绍面向对象程序设计OOP三大特征的另一个特征--封装。一、 概念封装是将对象的状态信息(也就是数据、属性)隐藏在对象内部,将对象的属性和实现细节隐藏起来,不允许外部程序直接访问对象内部信息,而是通过类所提供的方法来实...
阅读全文
摘要:本节实现一个类继承的小程序,下面一边结合代码一边介绍相关继承的知识。例子以车、汽车为例,车为父类、汽车为子类。一、 定义父类Vehicleclass Vehicle(): def __init__(self,wheelcount, power):#构造方法,参数有轮...
阅读全文
摘要:在本章第一节,介绍了面向对象程序设计的三个特征:封装、继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定,因此不存在出于多态考虑来进行继承。但继承可以让子类获得超类(...
阅读全文
摘要:在上节已经引入介绍了类定义,并简单介绍了类变量、实例变量、类方法和实例方法,后面章节还会进一步详细介绍相关的内容。本节要介绍的self是与类变量、实例变量、类方法和实例方法具体定义实现强相关的。一、什么是self?在Python中self实际上是指向类声明的实例对象自身,如果...
阅读全文
摘要:一、 引言在较旧的Python版本中,类型和类之间泾渭分明:内置对象是基于类型的,而自定义对象是基于类的。因此,你可以创建类,但不能创建类型。在较新的Python 2版本中,这种差别不那么明显。在Python 3中,已不再区分类和类型了,类就是类型,类型就是类,如int...
阅读全文
摘要:Python是一种多态语言,其表现特征是:对象方法的调用方只管方法是否可调用,不管对象是什么类型,从而屏蔽不同类型对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。一、 Python中的协议Python中定义某种类型是以实现了该类型对应的协议为标准的...
阅读全文
摘要:以下是老猿在学习《Python基础教程》第3版(Magnus Lie Hetland著,袁国忠译)过程中记录的一些笔记,老猿觉得这些理念非常好,因此总结出来供大家共享:1. 将相关的东西放在一起。如果一个函数操作一个全局变量,最好将它们作为一个类的属性和方法;2. ...
阅读全文
摘要:Python被视为一种面向对象的语言,在介绍Python类相关的内容前,本节对面向对象程序设计相关的概念进行简单介绍。一、 类和对象(实例)在面向对象的程序设计(OOP)过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance),其中类...
阅读全文
摘要:一、 Python动态执行支持通过输入数据流或文件传入Python源代码串,进行编译后执行,可以通过这种方式扩展Python程序的功能;二、 动态执行方法可能导致恶意攻击,因此使用时需要限定使用范围,注意安全风险;三、 如果采用先编译后动态执行的方式,注意编...
阅读全文
摘要:在Python动态执行的函数中,exec是用于执行一个字符串内包含的Python源码或其编译后对应的字节码。一、 语法1. exec(Code, globals=None, locals=None)2. 参数说明本函数的参数与eval的参数及含义完全相同,不...
阅读全文
摘要:在Python动态执行的函数中,eval是用于执行表达式计算的函数,这个函数用于执行字符串中包含的一个表达式或其编译后对应的代码,不能适用于执行Python语句和完整的代码。一、 语法1、 语法:eval(expression, globals=None, loc...
阅读全文
摘要:Python支持动态代码主要三个函数,分别是compile、eval和exec。本节介绍compile函数的语法和相关使用。compile函数用来编译一段字符串的源码,将其编译为字节码或者AST(抽像语法树)。一、 语法compile个内置函数,语法如下:compile...
阅读全文
摘要:一、 基本概念动态可执行,是指在代码中通过外部输入或代码嵌入的常量字符串包含代码的方式提供Python代码,要求Python执行这些代码。这样就可以达到开放式运行的效果,提高程序的能力和灵活性。动态可执行的方法带来方便和灵活性的同时,其实还是带来了安全性威胁。安全性威胁...
阅读全文