python继承

PYTHON之面向对象(基础)

纵然是瞬间 提交于 2020-02-23 04:58:06
一、创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象则是根据模板创建的实例,通过实例对象可以执行类中的函数 class是关键字,表示类 创建对象,类名称后加括号即可 例子: # 创建类 class Foo : def Bar ( self ) : print 'Bar' def Hello ( self , name ) : print 'i am %s' % name # 根据类Foo创建对象obj obj = Foo ( ) obj . Bar ( ) #执行Bar方法 obj . Hello ( 'wupeiqi' ) #执行Hello方法  诶,你在这里是不是有疑问了?使用函数式编程和面向对象编程方式来执行一个“方法”时函数要比面向对象简便 面向对象:【创建对象】【通过对象执行方法】 函数编程:【执行函数】 观察上述对比答案则是肯定的,然后并非绝对,场景的不同适合其的编程方式也不同。 总结:函数式的应用场景 --> 各个函数之间是独立且无共用的数据 二、面向对象三大特性 1.封装 顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。 所以,在使用面向对象的封装特性时,需要:

Python 类 初学者笔记

て烟熏妆下的殇ゞ 提交于 2020-02-22 14:38:06
面对象编程:编写表现世界中的事物和景象的类,并基于这些类创建对象,被创建的对象称为实例化。 创建类 class Dog(): #Python中类名称中的首字母要大写 def __init__(self, name, age): #类中的函数都称为【方法】,init__()是个特殊的方法,每当我们根据Dog类创建实例时,Python都会自动的运行它 #self必不可少且必须位于其它形参前面, # 每个与类相关的方法调用都自动传入self,self让实例能够访问类中的属性和方法 self.name = name#以【self】为前缀的变量,可供类中所有【方法】使用,也可通过【实例】访问,我们称其为【属性】 self.age = age def sit(self): #self会自动传递name与age print(self.name.title() + " is now sitting.") def roll_over(self): print((self.name.title() + " rolled over!")) 根据类创建实例 my_dog = Dog('willie',6) #根据类创建的实例名称应用小写 print("My dog's name is " + my_dog.name.title() + ".")#__init__并未显式的包含return语句

Python——面向对象,简易学生信息管理系统

寵の児 提交于 2020-02-22 12:43:40
一、概述 1.1涉及到的知识点   项目开发:创建项目,创建包,导入包;   面向对象:静态方法,继承,内置函数,自定义函数;   数据类型:列表,字典,字符串、列表、字典的转换和自动生成导向;   异常处理:捕获异常; 文件操作:读,写; 1.2需求分析   (1)思考学员管理系统需要哪些功能?   (2)思考可以将哪些功能对象化?   (3)创建的对象可将功能方法化(函数化)吗? 二、具体实现   (1)创建项目:StudentManagerSystem;   (2)创建文件:main,managerSystem,student;      (3)在文件内创建具体对象;   Student:基本属性有name,gender,tel,方法(__str__)返回具体属性值   managerSystem:属性依赖于Student,本身无属性,           功能有:执行函数run,静态方法show_menu,以及add_stu等增删改操作   main:创建对象,执行文件   (4)细节要点   确保在相应文件首部中导入正确的包,即使正确,仍可能有警告;   每写完一个小功能,都要立即进行测试,发现问题及时解决;   注意数据的存储形式,列表,字符串; 三、总结   这个项目跟着老师做了差不多一周,因为涉及的知识点很多事前面学过但没有很熟练掌握的,所以有些吃力,加上最近开学

类和对象

本秂侑毒 提交于 2020-02-22 09:23:12
类和对象 一、面向过程和面向对象 (1)面向过程 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可。 缺点:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身。 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等。 (2)面向对象 面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来。 优点:解决了程序的扩展性。对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。 缺点:可控性差,无法向面向过程的程序设计流水线式的可以很精准的预测问题的处理流程与结果,面向对象的程序一旦开始就由对象之间的交互解决问题 , 即便是上帝也无法预测最终结果。于是我们经常看到修改游戏的某一参数的极有可能导致bug的出现,使这个游戏失去平衡。 应用场景:需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业内部软件,游戏等都是面向对象的程序设计大显身手的好地方。 面向对象编程可以使程序的维护和扩展变得更简单,并且可以大大提高程序开发效率

Python面向对象:获取对象信息

邮差的信 提交于 2020-02-21 23:10:16
学习笔记内容简介: 获取对象属性和方法的函数: type(): 判断对象类型 isinstance() : 判断class的类型 dir() : 获得一个对象的所有属性和方法 把属性和方法列出来是不够的,配合以下函数,我们可以直接操作一个对象的状态: hasdttr():测试是否有该属性 setattr():设置一个新的属性 getattr(): 获取该属性 下面开始列举说明: type() #基本类型都可以用type()判断: >>> type(123) <class 'int'> >>> type('str') <class 'str'> >>> type(None) <type(None) 'NoneType'> #如果一个变量指向函数或者类,也可以用type()判断: >>> type(abs) <class 'builtin_function_or_method'> >>> type(a) <class '__main__.Animal'> #但是type()函数返回的是什么类型呢?它返回对应的Class类型。如果我们要在if语句中判断,就需要比较两个变量的type类型是否相同: >>> type(123)==type(456) True >>> type(123)==int True >>> type('abc')==type('123') True >>> type(

Python笔记

╄→尐↘猪︶ㄣ 提交于 2020-02-21 22:37:13
文章目录 一、基础 1. 注释 单行注释 TODO注释 多行注释 2. 数据类型 3. 运算符 数值运算 字符串运算 成员运算符 身份运算符 4. 转义字符 二、高级变量 1. 列表 定义 方法 2. 元组 定义 方法 3. 字典 定义 方法 4. 字符串 定义 方法 5. 切片 6. 全局变量 三、判断与循环 1. 判断 if else elif 2. 循环 while for 四、函数与方法 1. 封装 2. 导入 3. 参数 4. 返回值 5. 常用函数 输入 输出 随机数 eval 其他 五、类 1. 封装 实例属性与实例方法 类属性与类方法 静态方法 案例与总结 内置方法 私有属性与私有方法 2. 多态 单继承 多继承 重写 六、异常 1. 异常捕获 2. 异常传递 3. 异常抛出 七、文件操作 1. 文件读写 2. 文件访问方式 3. 大文件读取 八、模块 1. 模块导入 2. 包 一、基础 1. 注释 单行注释 单行注释快捷键crtl+/ # 行注释 print ( "hello world" ) # 语句注释 重要代码块使用等号隔开 # ====================== # ====================== TODO注释 # TODO 待完成任务 多行注释 """ 多行注释 """ 2. 数据类型 Python中定义变量时不需要指定变量类型

模板

我与影子孤独终老i 提交于 2020-02-21 17:20:23
简介 模板是一个文本,用于分离文档的表现形式和内容。 模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签)。 模板通常用于产生HTML,但是Django的模板也能产生任何基于文本格式的文档。 实现 在Python代码中使用Django模板的最基本方式如下: 可以用原始的模板代码字符串创建一个 Template 对象, Django同样支持用指定模板文件路径的方式来创建 Template 对象; 调用模板对象的render方法,并且传入一套变量context。它将返回一个基于模板的展现字符串,模板中的变量和标签会被context值替换。 1.创建模板对象 创建一个 Template 对象最简单的方法就是直接实例化它, Template 类就在 django.template 模块中,构造函数接受一个参数,原始模板代码。 让我们深入挖掘一下 Python的解释器看看它是怎么工作的。 当你创建一个 Template 对象,模板系统在内部编译这个模板到内部格式,并做优化,做好 渲染的准备。 如果你的模板语法有错误,那么在调用 Template() 时就会抛出 TemplateSyntaxError 异常: >>> from django.template import Template >>> t = Template('My name is {{ name }}.'

Python面向对象

那年仲夏 提交于 2020-02-21 05:14:14
文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员: 类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 实例变量: 定义在方法中的变量,只作用于当前实例的类。 继承: 即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。 实例化: 创建一个类的实例,类的具体对象。 方法: 类中定义的函数。 对象: 通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。 创建类 使用class语句来创建一个新类,class之后为类的名称并以冒号结尾,如下实例: class

4 python 类的专有方法介绍

寵の児 提交于 2020-02-19 17:03:04
1、 __init__ : 构造函数,在生成对象时调用 该方法是在对象产生之后才会执行,只用来为对象进行初始化操作,可以有任意代码,但不一定有返回值。 所谓初始化构造函数就是在构造对象的同时被对象自动调用,完成对事物的初始化,一个类只要生成一个类对象,它一定会调用初始化构造函数. 特点: 1>一个类中只能有一个初始化构造函数 2>不能有返回值 3>可以用它来为每个实例定制自己的特征 class Chinese: country = 'china' def __init__(self,name,sex,age): self.name = name self.sex = sex self.age = age def tell_info(self): info = f""" 国籍:{self.country} 姓名:{self.name} 性别:{self.sex} 年龄:{self.age} """ print(info) s1 = Chinese('alex','man','22') s2 = Chinese('alex2','woman','23') s3 = Chinese('alex3','man','21') 2、_mro_解析方法调用的顺序 继承的实现原理(多继承查找) >>> F.mro() #等同于F.__mro__ (<class '__main__.C'>,

python之路——面向对象进阶

你说的曾经没有我的故事 提交于 2020-02-18 21:41:10
一、isinstance和issubclass    isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo)    issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo)    二、反射 1 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。 2 python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数 下列方法适用于类和对象(一切皆对象,类本身也是一个对象) def hasattr(*args, **kwargs): # real signature unknown pass def getattr(object, name, default=None): # known special case