python继承

python面对对象

冷暖自知 提交于 2020-02-25 20:19:19
类的空间问题 何处可以添加对象属性 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex # 类外面可以: obj = A('barry') obj.age = 18 print(obj.__dict__) # {'name': 'barry', 'age': 18} # 类内部也可以: obj = A('barry') # __init__方法可以。 obj.func('男') # func 方法也可以。 总结:对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加 何处可以添加类的静态属性 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex def func1(self):     print(self) A.bbb = 'ccc' # 类的外部可以添加 A.aaa = 'taibai'                            这个还是有疑问????没看懂 print(A.__dict__) # 类的内部也可以添加。 A.func1(111) print(A.__dict__) 总结

Python基础梳理

时光毁灭记忆、已成空白 提交于 2020-02-25 17:27:32
一、Python第一个程序       变量、标识符和关键字、输入和输出、数据类型转换 二、条件控制语句和循环语句      比较关系运算符、逻辑运算符、三目运算符、while循环、for循环、break和continue 三、数据类型(容器类型)     列表、元组、字典、有序字典、公共函数、字符串 四、函数        函数的定义和调用、不定长参数函数、匿名函数、递归函数、可变和不可变类型 五、文件操作       文件打开和关闭、文件的读写、文件、目录相关操作、文件应用案例 六、面向对象       面向对象介绍、类的定义和对象的创建、添加和获取对象属性、init方法、私有方法和私有属性、继承、多态、类方法、对象方法、静态方法 七、异常处理      捕获异常、异常的传递、自定义异常 八、模块和包       模块介绍、模块的导入、模块中的 __all__、模块中 __name__ 的作用、包的介绍、包的导入 来源: https://www.cnblogs.com/haohaoshijian/p/10846275.html

python静态方法、类方法和实例方法

天大地大妈咪最大 提交于 2020-02-25 07:26:01
1. 静态方法 如果我们的类属性是一个私有变量,我们就需要定义一个函数使得在类外可以访问它。我们希望既可以用类名来访问,也可以用实例名来访问,那么该如何做呢? 下面这样是不行的: class Robot: # __开头表示私有变量 __counter = 0 def __init__(self): type(self).__counter += 1 def RobotInstances(self): return Robot.__counter if __name__ == "__main__": x = Robot() print("通过实例访问: ", x.RobotInstances()) # 下面会报错 print("通过类访问: ", Robot.RobotInstances()) 改代码无法通过类名访问,因为这种定义方式必须要定义一个实例,self指向这个实例。 如果我们在定义RobotInstances这个函数的时候,不写self参数,那么可以通过类访问,不能通过实例访问,静态方法就是为了解决这个问题。只需要在定义的函数前添加@staticmethod,这是装饰器语法。 class Robot: # __开头表示私有变量 __counter = 0 def __init__(self): type(self).__counter += 1 @staticmethod

python面向对象(一)

醉酒当歌 提交于 2020-02-24 08:35:06
面向对象 1.初始面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方:   面向过程 大象进冰箱     步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门   面向对象:   大象, 你进冰箱.     此时主语是大象. 我操纵的是大象. 此时的大象就是对象 2. 类和对象 类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类. 对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象 类与对象的关系: 类是对xxx事物的归类. def __init__(self, 参数) 参数一般作为属性设置给对象. 对象就是self, 对属性的封装.       pass def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象. pass 对象是xx类型的一个具体 创建对象: 类名() 创建类: class 类名: def __init__(self): # 初始化方法. 又被成为构造方法 self.属性 = 值 def fangfa(self): 方法体(函数体, return) 创建对象: 变量 = 类名() # 实例化 <-> 创建对象 变量.属性 # 访问对象的属性信息 变量.方法() # 访问类中的方法 class HeShang: def

python 初识面向对象

假装没事ソ 提交于 2020-02-24 08:33:37
1. 初识面向对象 面向过程: 一切以事务的发展流程为中心. 面向对象: 一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象 打比方: 大象进冰箱 步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门 面向对象:大象, 你进冰箱. 此时主语是大象. 我操纵的是大象. 此时的大象就是对象 1 class Car: # 类名首字母大写,严格蹲守驼峰命名规则 2 pass 3 4 5 # 造车 6 c = Car() # 类名() # 创建对象 7 8 # 出厂之后进行改装 9 c.color = '红颜色' # 对象.属性 点:的 当属性不存在的时候, 添加一个属性 10 c.pai = '京A8888' # 对象.属性 11 c.pailiang = '555L' # 排量 12 13 print(c.color) # 此车是红颜色 14 print(c.pai) 15 print(c.pailiang) 16 17 c.color = '绿颜色' # 当属性存在的时候是修改属性信息 18 # 对象.属性 =xxx 设置属性信息 19 print(c.color) 2. 类. 对象 类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类. 对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象 类与对象的关系: 类是对xxx事物的归类. 写: _

Python学习——面向对象(二)

落花浮王杯 提交于 2020-02-24 08:32:58
类变量:存在类中的变量,可以通过【类名.类变量名】的方式进行调用。也可以使用【self..类变量名】(self会先从本实例中找,如果本实例没有就去类中找) 类方法:存在类中的方法,可以通过【类名.类方法】的方式进行调用。使用 @classmethod def eat(cls): cls代表类     1、直接使用类名调用,不需要实例化     2、可以使用类变量,cls.类变量     3、实例对象也可以调用类方法:self.类方法     4、类方法里面不可以有实例方法和属性     @classmethod     def eat(cls): cls代表类 静态方法:就是一个普通函数,定义在类中而已。 @staticmethod 静态方法()     1、可以通过类名.静态方法名调用     2、不能使用实例方法和属性     3、不能使用类方法和属性     4、实例化的对象可以调用静态方法。对象名.静态方法名 属性方法 :看起来像变量的函数。 @property def 方法名(self): 1、本身是一个实例方法      2、没有入参,只有self本来对象的一个参数      3、使用方法:对象.属性方法。当变量使用,没有“()” 析构函数:在实例被销毁的时候执行,一般写关闭数据库和关闭文件等操作。释放内存 私有函数:在函数或者变量前面加__,就是私有变量

面对对象编程

点点圈 提交于 2020-02-24 08:32:22
面向对象编程 标签(空格分隔): python 基础 --- 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 我这里把它定义为: 按人们 认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。 面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。 面向对象编程的2个非常重要的概念:类和对象 对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类 #类 人以类聚 物以群分。 具有相似内部状态和运动规律的实体的集合(或统称为抽象)。 具有相同属性和行为事物的统称 类就是创建对象的模板 #对象 某一个具体事物的存在 ,在现实世界中可以是看得见摸得着的。 可以是直接使用的 #python中的类 类(Class) 由3个部分构成 类的名称:类名 类的属性:一组数据 类的方法:允许对进行操作的方法 (行为

python面向对象的方法类型,继承等

梦想的初衷 提交于 2020-02-24 08:31:07
析构函数 class My: def __init__(self): print('构造函数,类在实例化的时候执行') def __del__(self): print('析构函数,实例被销毁的时候执行') def say(self): print('say')m=My()m.say() 私有 类方法 1 不实例化,可以直接用类调用 2 可以使用类变量,cls.xxx 3 实例化也可以通过self.xx调用类方法 4 类方法是不能用实例方法和实例变量的 class My: name='holly' #类方法 @classmethod#装饰器,不改变原来的函数,给函数增加新功能 def eat(cls): print(cls.name) print('吃饭')My.eat()m=My()m.eat()实例方法类里面正常定义的方法都叫实例方法(self)静态方法:就是一个普通的方法,只是放在了类里面而已不需要实例化直接用类名可以调用用不了实例方法,用不了实例变量用不了类方法,类变量 class My:   def __init__(self):   print('构造函数,类在实例化的时候执行') #实例化方法 def cry(self): print('cry') # 静态方法 @staticmethod def study(): print('study hard')My

Python之面向对象编程

拜拜、爱过 提交于 2020-02-24 08:30:25
一、类的对象、实例化、变量 1.概念:类就是class,将一类事物放到一起,类里面包含这类事物的各种函数方法,相当于一个模型,例如造汽车,造汽车就是一个类,类里面包含造轮胎,造车门等函数方法。类的实例化就是通过这个类,这个模型造出来的实际的东西,例如通过造汽车这个模型造出来了一个汽车,这个汽车就是这个类的一个实例。在类里面有类变量,写在类里面,函数外面,通常就是类变量,在函数里面类似于self.name 这种就是实例变量。类的对象在代码层指的就是self,在函数里都会默认有个参数为self,类里面的函数都是面向这个self对象,函数里面的self.name 这种变量也是的,所以在一个类的函数里面,各个函数可以直接调用类里的其他函数的self.name 这种变量,或是self.函数名这个函数。其实在实例化的时候就是将那个实例传递给这个类里面的self,所以这个实例会拥有这个类里面的所有属性,或是方法。 2.例子: class Person: #类,类名都以大写字母开头,驼峰式取名 country = 'China' #类变量 def say(self): self.name = '张三' #实例变量 def cry(self): print('%s 哇哇哇'%self.name) #调用上一个函数里self.name self.say() #调用函数say()a=Person()

Python设计模式 - 基础 - 封装 & 继承 & 多态

不想你离开。 提交于 2020-02-24 06:26:04
面向对象的核心是对象,世间万物都可以看作对象,任何一个对象都可以通过一系列属性和行为来描述,可以包含任意数量和类型的数据或操作。类是用来描述具有相同属性和方法的所有对象的集合。类通常是抽象化的概念,而对象表示具体的事物。 要想熟悉并灵活运用类和对象解决项目中的实际问题,首先需要透彻了解面向对象的三大特性:封装、继承和多态。 本系列是总结python的设计模式,所以本篇的内容为基于python的、与设计模式强相关的对象特性,如无特殊说明默认版本为python3,默认新式类。 封装 封装本身包含“封”和“装”的过程,把希望对外隐藏、对内开放的变量或方法实现“封”起来,把变量及对应的数据值、方法及对应的方法实现“装”到命名空间。封装并不是单纯意义上的隐藏,而是为了增强安全性和简化编程,调用者不必了解具体的实现细节,只要通过相应的接口、特定的访问权限即可使用类的变量及方法。 封装的好处   - 隐藏类的内部细节   - 限制(直接)访问   - 隔离变化   - 方便复用 封装的类型   - 数据封装:保护隐私 定义变量或属性数据的目的就是方便调用,同时又不想被类外部直接使用,所以在类内部开辟相应的接口,让类外部的调用者通过接口间接地操作隐藏的变量或属性数据。   - 方法封装:隔离变化,方便复用   定义方法的目的也是方便调用,相同的实现过程可以抽取出来封装成方法,供类内外部的使用者调用