python继承

python_面向对象——多继承

寵の児 提交于 2019-12-04 19:58:08
1.多继承 class Shenxian: def fly(self): print('神仙会飞~') class Monkey: def eat_peach(self): print('猴子喜欢吃桃子') # 继承多个类 class MongkeyKing(Shenxian,Monkey): def play_stick(self): print('孙悟空玩金箍棒') m = MongkeyKing() # 子类对象可以执行多个父类中的方法 m.play_stick() m.fly() m.eat_peach() 2.多继承顺序(按顺序从左到右继承) class Shenxian: def fly(self): print('神仙会飞~') def fight(self): print('神仙打架') class Monkey: def eat_peach(self): print('猴子喜欢吃桃子') def fight(self): print('猴子打架') # 当多继承父类中同时有两个重名方法时,先继承左边父类中发方法(继承顺序从左到右) class MongkeyKing(Shenxian,Monkey): def play_stick(self): print('孙悟空玩金箍棒') m = MongkeyKing() m.fight() 3. 来源: https:/

Python中self的用法

寵の児 提交于 2019-12-04 18:10:34
在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。 在python中,类是通过关键字 class 定义的: 1、class 后面紧跟类名,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的继承类,就使用 object 类,这是所有类最终都会继承的类。 class Person(object):   pass 2、将 Person类实例化,创建实例化是通过 类名+() 实现的。 class Person(object):   pass student = Person() # 创建类的实例化 print(student) print(Person) 3、给实例变量绑定属性 比如:为 student 绑定 name 和 sex属性 class Person(object):   pass student = Person() # print(student) # print(Person) student.name = "Gavin" # 为实例变量 student 绑定 name 属性,类似于赋值操作 student.sex = 男 # 为其绑定 score 属性 print(student.name) print(student

python-类

跟風遠走 提交于 2019-12-04 18:01:52
class lei: def __init__(self,name,age):#初始化函数 self.name=name self.age=age self._sex='女'#初始化函数中self后面的是实例化对象属性,加下划线代表是私有的,不应该访问 def get_name(self):#自定义函数,self指向实例本身 return self.name;p1=lei('zhangsan',12)p2=lei('lisi',13)print(p1.get_name())print(p2.get_name())class Student(lei):#继承 def get_score(self): return 100 pass #pass在python中代表什么都不做s=Student('liu',24)print(s.get_name())print(s.get_score()) 来源: https://www.cnblogs.com/testerling/p/11876622.html

Python笔记3

空扰寡人 提交于 2019-12-04 17:36:44
类格式示例: class Student(): name = '' age = 0 def print_file(self): print('name:' + self.name) print('age:' + str(self.age)) 注:类中的函数,参数列表中必须有self,并且如果想在函数中引用类中变量需要使用 self.操作符。 类实例化示例: student = Student()// Student student = new Student(); 没有 java里的new 一个实例 运行这个类和调用这个类都要在类的外部 1、面向对象的两个主要部分:类、对象 2、在类的内部:可以定义若干个变量 可以定义函数 3、调用类:将类实例化 用一个变量来接收实例化的结果 4、在类里面编写函数的时候一定要传入self 5、在类中函数的定义中用到类中定义的变量时,要用self引入 总结:1、类最基本的理解:对一系列变量和函数进行封装 2、类下面的函数一定要加self,在函数内部要调用类内变量的话要通过self调用 3、类只负责定义,不负责执行,所以在类内不能对方法进行调用 构造函数 ①实例化过程自动调用构造函数, 可以在构造函数里初始化对象的特征 构造函数可以让类生成不同的对象,实例化传入不同的参数 python中构造函数的格式: def __init__(self,name

python初级(302) 6 对象(三)

只愿长相守 提交于 2019-12-04 16:36:35
一、复习 二、继承:向父母学习 在面向对象编程中,类可以从其他类继承属性和方法。这样就有了类的整个家族,这个家族中的每个类共享相同的属性和方法。这样一来,每次向家族增加新成员时就不必从头开始。 从其他类继承属性或方法的类称为派生类或子类。被继承的叫做父类。 class GameObject: def __init__(self, name): self.name = name def pick_up(self, player): pass class Coin(GameObject): def __init__(self, value): GameObject.__init__(self, value) 来源: https://www.cnblogs.com/luhouxiang/p/11874642.html

Python设计模式

南笙酒味 提交于 2019-12-04 16:13:41
No1 观察者模式 定义了对象之间的一对多依赖。当被观察者对象改变状态时,它的所有依赖者(观察者)都会收到通知并更新状态。 #可以继承一个抽象类 class Observer(): """观察者基类""" # @abstractmethod def update(self, observable, object): pass class Observable: """被观察者的基类""" def __init__(self): self.__observers = [] def addObserver(self, observer): self.__observers.append(observer) def removeObserver(self, observer): self.__observers.remove(observer) def notifyObservers(self, object): for obj in self.__observers: obj.update(self, object) ''' 举例:异地登录提醒 ''' import time class Account(Observable): def __init__(self): super().__init__() self.__lastIp = {} self.__lastRegion = {

python入门(五)

末鹿安然 提交于 2019-12-04 16:09:28
  通过前面的学习我们知道,事与物都是对象,我们都能将其定义为一个类,python中将该类定义为object,我们所创建的类都是直接或间接继承与object,他们都有object类的属性和方法,面向对象有抽象、继承、封装、多态四个特性。 抽象   创建类要通过class关键字来创建,比如有一个人,我们要实现他的类,我们把它抽象为Person   class Person:     pass #如果没有想要封装的属性我们可以通过pass关键字来结束 封装   对象有自己的属性和方法,比如一个人,他有自己的姓名和年龄的属性,他能干什么这是他的方法,我们可以定义他的名字属性为name,年龄为age,他能跑步、说话的方法,我们可以定义跑步run(),speak()   class Person:     name = 'Tom'     age = 18     def run(self):       print('我正在跑步')     def speak(self):       print('我正在说话')   p = Person() # p就是类的一个实例体现   print(p.name,p.age) #打印结果: Tom 18   p.run() #打印结果: 我正在跑步 调用run()方法我们不用传入参数,self是对象的实例,直接用p.run()就能实现实例方法   p

Python类装饰器

安稳与你 提交于 2019-12-04 15:53:33
上次介绍了Python的函数装饰器,这次我们来讲一讲Python的类装饰器。 Python的类装饰器基本语法如下: def decorator(cls): print "6666666" return cls @decorator class Model(object): def __init__(self): print "model created" if __name__ == '__main__': model = Model() decorator即是装饰器函数,输入的cls是一个类,返回也是一个类(其实返回一个可调用对象就可以,例如函数)。所以其实上文的类装饰器就相当于: model = decorator(Model)() 这只是最基本的版本,既然返回只要是一个可调用对象就可以,我们就可以对输入的类进行一系列魔改: class A(object): def __init__(self): print "77777" def decorator(cls): return A @decorator class Model(object): def __init__(self): print "model created" if __name__ == '__main__': model = Model() print model 输出为: 77777 <__main__

python 异常处理

孤者浪人 提交于 2019-12-04 15:52:57
1. try……except a = dict(name = 'wang') b = [1,2,3] try: # 尝试着执行try里面的代码 print(a) print(a['age']) print(b[100]) except (NameError,) as e: # 遇到NameError的错误,则抛出(可以将多个错误写在一行,用括号括起来,逗号隔开) print(e) except KeyError as e: # keyError print('key_error',e) except Exception as e: # 所有能抛出的异常都可以抛出 print('未知错误。') else: print('没有错误,才执行此句。可以省略') finally: print('总会执行此句。可以省略') 2. 自定义异常 # 自定义 异常 class NumError(Exception): # 创建一个异常类,继承自Exception def __init__(self,info): super().__init__(self) # 继承父类的方法 self.info = info def __str__(self): # __str__方法,打印对象即可直接打印返回值 return self.info num = [1,2,3,4,5] try: if len(num)

Exception,python的错误处理

試著忘記壹切 提交于 2019-12-04 15:17:41
摘录: https://www.liaoxuefeng.com/wiki/1016959663602400/1017598873256736 错误处理 高级语言都会使用内置的一套 try...except...finally... 的错误处理机制, 可以更高效的处理错误, 无需程序员自己写错误处理的代码。 try try: print('try...') r = 10 / int('2') print('result:', r) except ValueError as e: print('ValueError:', e) except ZeroDivisionError as e: print('ZeroDivisionError:', e) else: print('no error!') finally: print('finally...') print('END') 如果有错误,根据发生不同类型的错误,使用不同的except处理。 int('a')会出发 ValueError 10/0会触发ZeroDivisionError。 否则代表没有错误,则执行else。 最后都要执行finally 常见的错误类型和继承关系 看文档Built-in Exceptions https://docs.python.org/3/library/exceptions.html