python继承

python的起源和作用

こ雲淡風輕ζ 提交于 2019-11-26 13:53:14
python来源 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 python能做什么? python哪些公司在用? 编程语言六大类? python从两个方面:编译型:一次编译,多次执行(缺点:编译时间长。优点:运行速度快)解释性:边编译边执行,(优点:开发效率高-翻译时间短。缺点:运行速度慢) 重点:python是一门动态解释型的弱类型定义语言 python解释器的种类 2004年Django诞生,2008年python3.0诞生 来源: https://www.cnblogs.com/jingjunke/p/11322878.html

Python--面向对象

痴心易碎 提交于 2019-11-26 13:47:38
1.列表生成式 形如: a=[x for x in range(100]    print(a) 1.1 列表生成式的优缺点 优点:计算速度快(因为一次性加载到内存中,数据量不要太大) 缺点:占用内存 2.生成器 形如:a=(x for x in range(100) if x % 2 ==0)    print(next(a)) 2.1 生成器的与缺点 优点:节约内存 缺点:计算速度慢,效率低(因为要一次一次生成数据) 3.装饰器 作用:它能使函数的功能得到扩充,而同时不用修改函数本身的代码。 它能够增加函数执行前、执行后的行为,而不需对调用函数的代码做任何改变。 3.1 实例 4.继承 4.1 继承相关定义 继承允许我们在定义一个类时,让该类继承另一个类的所有方法和属性。 父类是被继承的类,也称为基类。 子类是继承父类的类,也称为派生类。 注: 子类获得了父类全部非私有的功能。 子类不能继承父类中的私有方法,也不能被调用父类的私有方法。 对于父类中扩展的非私有方法,子类可以拿来即用。 4.2 继承实例  class A(object): def __init__(self): pass def foo(self): print 'A foo' class B(object): def __init__(self): pass def foo(self): print 'B

python 面向对象的进阶

非 Y 不嫁゛ 提交于 2019-11-26 13:46:14
1、@property装饰器 # 使用装饰器的时候,需要注意: # 1. 装饰器名,函数名需要一致. # 2. property需要先声明,再写setter,顺序不能倒过来 # 3. 如果你希望一点变量只是被访问不能被修改,那么可以使用访问器@property # 4. 如果要修改访问器中的变量,可以搭建一个修改器,或者删除访问器. 2、在python中类是动态的 Python是一门[动态语言]。通常,动态语言允许我们在程序运行时给对象绑定新的属性或方法 当然也可以对已经绑定的属性和方法进行解绑定。但是如果我们需要限定自定义类型的对象只 能绑定某些属性,可以通过在类中定义\_\_slots\_\_变量来进行限定。需要注意的是\_\_slots \_\_的限定只对当前类的对象生效,对子类并不起任何作用。 3、继承和多态 众所周知,可以在已有类的基础上创建新类,这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来,从而减少重复代码的编写。提供继承信息的我们称之为父类,也叫超类或基类;得到继承信息的我们称之为子类,也叫派生类或衍生类。子类除了继承父类提供的属性和方法,还可以定义自己特有的属性和方法,所以子类比父类拥有的更多的能力,在实际开发中,我们经常会用子类对象去替换掉一个父类对象,这是面向对象编程中一个常见的行为,对应的原则称之为[里氏替换原则]

python 02

落花浮王杯 提交于 2019-11-26 13:21:57
class A(object): def __init__(self): # 私有 在变量名称前加上‘_ _’ # 私有 不可继承,不可在外部调用 # 但是可以在内部调用 self.__a = 1000 # 约定使用“_”来表示私有 self._b = 100 def B(self): print(self.__a) self.__c() def __c(self): print(self.__a) A_ = A( ) print(A_._A__a) print(A_.B()) print(dir(A_)) # 查看该实例所有的方法和属性 使用装饰器的时候,需要注意 1.装饰器名、函数名需一致 2.property需要先声明,再写setter,顺序不能倒过来 3.如果某个变量只允许被访问不允许被修改,就可以使用访问器@property 4.如果需要修改访问器中的变量,可以搭建一个修改器,或者删除访问器例子: class A(object): def __init__(self,a,b,c): self.__a=a self.__b=b self.__c=c @property def B(self): print(self.__a) @B.setter def B(self,num): self.__a=num def sum(self): print(self.__a+self.

面向对象——类的继承和多态

被刻印的时光 ゝ 提交于 2019-11-26 12:49:28
1、继承的定义 继承是指:可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 (1)通过继承创建的新类称为“子类”或“派生类”。 (2)被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 2、继承的分类 继承概念的实现方式主要有2类:实现继承、接口继承。 (1) 实现继承是指使用基类的属性和方法而无需额外编码的能力; (2)接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力(子类重构父类方法); 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。 抽象类仅定义将由子类创建的一般属性和方法。 OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。 3、示例代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu #类的继承 classPeople: def__init__(self,name,age): self.name

面向对象与继承

百般思念 提交于 2019-11-26 12:49:21
1、编程的方式 2、面向对象的基本概念 3、类的基本概念 4、类的定义与调用——简单代码举例 注:建议类名的开头字母用大写,在Python中,类内的函数称作方法,类外的函数还是称作函数。 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu #类 classPerson: i =10#属性(变量) defeat(self):#方法(函数) print("eating...") pass #类的调用 a = Person() a.eat() #运行结果: eating... classPerson(): #对象属性 构造方法 在实例化对象时会自动调用 # 实例化的对象就具有name和age两个属性 #self是指当前的对象 self不是关键字可以被代替,但是习惯使用self指代当前对象 def__init__(self,name,age): # 通过构造方法声明了两个对象属性 #对象.name属性 = name参数 self.name = name self.age = age #声明一个类方法 defspeak(self): print("Hello,my name is %s,and I'm %d years old"%(self.name,self.age)) #创建实例对象 会触发构造方法

python 面向对象

好久不见. 提交于 2019-11-26 12:10:53
1、面向对象的基本知识 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个 “ 函数 ” 供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装、继承和多态 2、类的成员 类的成员可以分为三大类:字段、方法和属性( 1、字段:普通字段、静态字段; 2、方法:普通方法、类方法、静态方法; 3、属性:普通属性) 所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。 2.1、字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段 属于 对象 静态字段 属于 类 class Province: # 静态字段 country ='中国' def __init__(self, name): # 普通字段 self.name = name # 直接访问普通字段 obj = Province('河北省') print(obj.name) # 直接访问静态字段 print(Province.country) print(obj.country) 静态字段在内存中只保存一份

day02 python——面向对象进阶

ぃ、小莉子 提交于 2019-11-26 12:08:01
Python 标识符 在python里,标识符由字母、数字、下划线组成。 在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 python中的标识符是区分大小写的。 以下划线开头的标识符是由特殊意义的。以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问。 以双下划线开头的__foo代表类的私有成员,以双下划线开头和结尾的__foo__代表python里特殊方法专用的标识,如__init__()代表类的构造函数。 python可以同一行显示多条语句,方法是用分号;分开 __a私有变量    不可继承;在类内可以调用,在外部不可调用。   当变量特别重要时用一个下划线来表示私有 例如: @property访问器及@XXX.setter修改器 例如: 在python中,类是动态的 例如: __slots__魔法变量 需要限定自定义类型的对象只能绑定某些属性,可以通过在类中定义 _ _ slots _ _ 变量来进行限定。需要注意的是 _ _ slots _ _ 的限定只对当前类的对象生效,对子类并不起任何作用。 案例:邮箱注册 来源: https://www.cnblogs.com/hisashi-mitsui/p/11318128.html

Python抽象类和接口类

不打扰是莪最后的温柔 提交于 2019-11-26 11:53:17
zxq547 python定义接口继承类invalid syntax解决办法 1 2 3 4 5 6 7 class s_all(metaclass = abc.ABCMeta): #python2.7用此方法定义接口继承 # __metaclass__ = abc.ABCMeta @abc .abstractmethod def read( self ): pass pyhton2.7会报错,此方法用于python3+pyhton2.7应用次方法定义 1 2 3 4 5 6 7 class s_all(): #python2.7用此方法定义接口继承 __metaclass__ = abc.ABCMeta @abc .abstractmethod def read( self ): pass Python之抽象类、抽象方法 抽象类中只能有抽象方法,子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。 Python2 class CopyBase(object): def save(self): raise NotImplementedError class CopyPaper(CopyBase): def __init__(self): pass def save(self): print("copy paper") class CopyQuestion

Python Basics

余生长醉 提交于 2019-11-26 11:32:25
廖雪峰老师博客 1. 可变参数(例如 *nums),允许传入一个list 或 tuple,但是 关键字参数(例如 **kv),允许传入一个dict,具体可参考 此页 ; 2. set与dict类似,但只是一组key的集合,不存储value;tuple与list类似,只是tuple初始化后不能修改,即每个元素的指向不变; 3. Python切片操作使用 [start Index : end index : step],意为 从 start index 开始(from zero),到end index 为止,不包含 end index,每 step 个元素取一个,若step为 -1,则数据顺序翻转;如果要从最后一位元素开始,则 start index 从 -1 开始; L=[ ' A ' , ' B ' , ' C ' , ' D ' , ' E ' ] >>> L[0::2 ] [ ' A ' , ' C ' , ' E ' ] >>> L[::-1 ] [ ' E ' , ' D ' , ' C ' , ' B ' , ' A ' ] >>> L[-1:-3:-1 ] [ ' E ' , ' D ' ] >>> L[-2 :] [ ' D ' , ' E ' ] 4. 凡是可作用于for循环的对象都是Iterable类型,比如list、tuple、dict、set、str