python继承

面向对象之继承

十年热恋 提交于 2019-12-20 08:19:40
初识继承 什么是继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类。 子类会“”遗传”父类的属性,从而解决代码重用问题(比如练习7中Garen与Riven类有很多冗余的代码) python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 passclass ParentClass2: #定义父类 passclass SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass passclass SubClass2(ParentClass1,ParentClass2): #python支持多继承,用逗号分隔开多个继承的类 pass 查看继承 SubClass1.__bases__ #__base__只查看从左到右继承的第一个子类,__bases__则是查看所有继承的父类(<class '__main__.ParentClass1'>,)SubClass2.__bases__(<class '__main__.ParentClass1'>, <class '__main__.ParentClass2'>) 提示:如果没有指定基类,python的类会默认继承object类,object是所有python类的基类

Python面向对象之继承

喜欢而已 提交于 2019-12-20 08:14:40
一、继承 面向对象的语言:c++,c#,java 面对对象的三大特性(继承、多态、封装) 其他语言都有 二、继承和抽象 实例---> 分类 ---> 汇总 逐渐抽象 编程实现:先抽象,后继承 继承的好处:继承能提高代码的重用性,还能规范代码 继承分为子类和父类 父类/超类/基类 子类/派生类 class Animal: # 父类 def __init__(self,name,kind): self.name = name self.kind = kind def sleep(self): print('%s在睡觉'% self.name) class Cat(Animal): # 子类 def catch(self): print('%s抓老鼠'% self.name) cat = Cat('小猫','咖啡猫') print(cat.name) cat.sleep() cat.catch() ------------------ 小猫 小猫在睡觉 小猫抓老鼠 ------------------ 继承的语法: class A:pass class B(A):pass class A: # 父类 ... class B(A): # B 继承 A ... 三、单继承 继承与重用 重用:子类可以使用父类中的所有属性和方法,父类中所有的属性和方法都可以被子类使用了   

四. python面向对象(继承)

你说的曾经没有我的故事 提交于 2019-12-20 08:10:02
一. 继承 class A:pass # 父类 基类 超类 class B:pass # 父类 基类 超类 class A_son(A,B): pass # 子类 派生类 class AB_son(A):pass # 子类 派生类 # 一个类 可以被多个类继承 # 一个类可以继承多个父类 print(A_son.__bases__) # 查看类的继承__bases__ (<class '__main__.A'>, <class '__main__.B'>) print(AB_son.__bases__) # 查看类的继承__bases__ (<class '__main__.A'>,) print(A.__bases__) # 查看类的继承__bases__ 在python 中没有父类 都是 object儿子 (<class 'object'>,) class Per(object): def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex class Dog(Per): pass aa=Dog("张三",25,"男") print(aa.age) # 25 print(aa.name) # 张三 class Aa(object): def __init__(self, name,aggr

Python Tkinter学习(1)——第一个Tkinter程序

北城以北 提交于 2019-12-20 07:07:43
注:本文可转载,转载请注明出处:http://www.cnblogs.com/collectionne/p/6885066.html。格式修改未完成。 Tkinter资料 Python Wiki, TkInter effbot.org, An Introduction to Tkinter New Mexico Tech Computer Center, Tkinter 8.5 Reference, a GUI for Python 还有更多资料,详情请访问第一个Python Wiki链接。 Tkinter介绍 Python支持多个图形库,例如Qt、wxWidgets,等等。但是Python的标准GUI库是Tkinter。Tkinter是Tk Interface的缩写。Python提供了 tkinter 包,里面含有Tkinter接口。 开始写程序 要使用Tkinter,首先需要导入Python提供的 tkinter 模块: import tkinter as tk 这个语句导入 tkinter 模块,但为方便,为它定义了一个别名 tk 。 GUI系统中,普遍有一个控件(widget)的概念。控件就是指按钮、滚动条、文本框这些东西。特殊地,窗口也是一个控件,窗口可以容纳其它控件。在Tkinter中,用 Frame 类表示窗口。我们的程序可以直接创建一个 Frame

python ==》 面向对象

怎甘沉沦 提交于 2019-12-20 04:08:35
一、面向过程与面向对象的简介 1.面向过程:   定义:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。   优点:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可。   缺点:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身。 2.面向对象:   定义:面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来。   优点:解决了程序的扩展性。对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。   缺点:可控性差,无法向面向过程的程序设计流水线式的可以很精准的预测问题的处理流程与结果,面向对象的程序一旦开始就由对象之间的交互解决问题,即便是上帝也无法预测最终结果。 二、面向对象的家庭成员介绍 1.初识类和对象 对象: (1)指一切物体(‘万事万物皆为对象’) (2)不同的对象有不同的属性,万物皆有变化——对象的方法。 (3)对于任何一个属性都具有3个方面:属性所属的对象,属性的值,属性的名称。对象有些属性并不是一层不变的。 类: (1)物以类聚——类定义对象——饼干模具生产饼干 (2)类是由相同的特征组成

python基础===继承

孤街醉人 提交于 2019-12-19 13:09:44
编写类时,并非总是要从空白开始。如果你要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。 1.子类的方法__init__() 创建子类的实例时,Python首先需要完成的任务是给父类的所有属性赋值。为此,子类的方法__init__()需要父类施以援手。 例如,下面来模拟电动汽车。电动汽车是一种特殊的汽车,因此我们可以在前面创建的Car类的基础上创建新类ElectricCar,这样我们就只需为电动汽车特有的属性和行为编写代码。下面来创建一个简单的ElectricCar类版本,它具备Car类的所有功能: class car(): """docstring for car""" def __init__(self, make, modle, year): self.make = make self.modle = modle self.year = year self.odometer_reading = 0 def get_descriptive_name(self): long_name = str(self.year) + " " +self.make + " " + self.modle return long_name

python——魔术方法

北城余情 提交于 2019-12-18 21:38:50
一、常用魔术方法 1.del 销毁魔术方法 触发时机:当一个对象在内存中被销毁的时候自动执行 参数:至少有一个self,接收对象 返回值:无 作用:在对象销毁的时候做一些操作 注意:程序自动调用此方法,不需要我们手动调用。 class Cat: def __init__(self,name): self.name=name print("{}来了".format(self.name)) #对象在销毁时执行 def __del__(self): print("{}走了".format(self.name)) cat=Cat("tom") # del cat print("程序结束")`` 结果: tom来了 程序结束 tom走了 2.call call():可以让类的实例具有类似于函数的行为, 进一步模糊了函数和对象之间的概念。 使用方式: 对象后面加括号,触发执行。 即:对象() 或者 类()() class Person : def __init__ ( self ) : pass def eat ( self ) : print ( "吃。。。" ) def __call__ ( self , num ) : he = 0 for i in range ( 1 , num + 1 ) : he += i print ( he ) person = Person ( )

笨方法学Python, Lesson 40

ⅰ亾dé卋堺 提交于 2019-12-18 17:48:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Exercise 40 代码 class Song(object): def __init__(self, lyrics): self.lyrics = lyrics def sing_me_a_song(self): for line in self.lyrics: print line happy_bday = Song(["Happy birthday to you", "I don't want to get sued", "So I'll stop reght there"]) bulls_on_parade = Song(["They really around the family", "With pockets full of shells"]) happy_bday.sing_me_a_song() bulls_on_parade.sing_me_a_song() 输出 Notes ①class定义类,__init__()初始化类 ②定义类、实例化类、调用相关函数与变量的方法 Exercise 41 代码 import random from urllib import urlopen import sys WORD_URL = "http://learncodethehardway.org

Python实例属性限制(__slots__)

那年仲夏 提交于 2019-12-18 05:28:15
Python的动态绑定可以在程序运行的过程中对实例或class加上功能,但是如果我们想要限制实例的属性怎么办呢?更改内容请参考: Python学习指南 正常情况下,当我们定义了一个class,创建了一个class实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class: class Student(object): pass 然后,尝试给实例绑定一个属性: s = Student() s.name = 'Michael' print(s.name) Michael 还可以给实例绑定一个方法: def set_age(self, age): #定义一个函数作为实例方法 self.age = age from types import MethodType s.set_age = MethodType(set_age, s) #给实例绑定一个方法 s.set_age(25) s.age 25 但是,给一个实例绑定的方法,对另一个实例是不起作用的: s2 = Student() #创建一个新的实例 s2.set_age(25) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Student' object has no

python之背后的知识

此生再无相见时 提交于 2019-12-18 02:57:40
一、python的起源 1.1989年的圣诞节期间,吉多*范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为ABC语言的一种继承。 2.ABC是由吉多参加设计的一种教学语言,就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功, 究其原因,吉多认为是非开发造成的。吉多决心在Python中避免这一错误,并获取了非常好的效果。 3.之所以选中Python(蟒蛇)作为程序的名字,是因为他是BBC电视剧--蒙提*派森的飞行马戏团(Monty Python’s Flying Circus)的爱好者。 4.1991,第一个Python解释器诞生,它是用C语言实现的,并能够调用C语言的库文件。 1999年,吉多*范罗苏姆向DARPA提交了一条名为”Computer Programming For Everybody”的资金申请,并在后来说明了他对Python的目标:   1.一门简单直观的语言并与主要竞争者一样强大    2.开源,以便任何人都可以为它做贡献      3.代码像纯英语那样容易理解   4.适用于短期开发的日常任务 二、python的特点 简单。python遵循"简单、优雅、明确"的设计哲学。 高级。python是一种高级语言,相对于c,牺牲了性能而提升了编程人员的效率。它使得程序员可以不用关注底层细节