<每日一题>题目17:super()继承相关的面试题

class A(object):
    def go(self):
        print("go A go!")
    def stop(self):
        print("stop A stop!")
    def pause(self):
        raise Exception("Not Implemented")

class B(A):
    def go(self):
        super().go()
        print( "go B go!")

class C(A):
    def go(self):
        super().go()
        print("go C go!")
    def stop(self):
        super().stop()
        print("stop C stop!")

class D(B,C):
    def go(self):
        super().go()
        print("go D go!")
    def stop(self):
        super().stop()
        print("stop D stop!")
    def pause(self):
        print("wait D wait!")

class E(B,C): pass

a = A()
b = B()
c = C()
d = D()
e = E()

# 说明下列代码的输出结果
print("--------------")
a.go()
#"go A go!"
b.go()
#B继承A:"go A go!" "go B go!"
c.go()
#C继承A:"go A go!" "go C go!"
d.go()
#D继承B,C:从后往前C继承A:"go A go!" "go C go!" B继承A: "go B go!" "go D go!"只继承一次
e.go()
#E继承B,C:C继承A:"go A go!" "go C go!" B继承A:"go B go!"
print("-------------")
a.stop()
#"stop A stop!"
print(‘123‘)
b.stop()
#B继承A:B本身没有stop方法:"stop A stop!"
print("123")
c.stop()
#C继承A:"stop A stop!" "stop C stop!"
d.stop()
#D继承B,C:C继承A:"stop A stop!" "stop C stop!" "stop D stop!"
e.stop()
#E继承B,C:C继承A:"stop A stop!" "stop C stop!"
print("$$$$$$$$$$$$$$")
a.pause()
#直接抛出异常了,程序结束,后面的程序都不会执行了
# 关键字raise是用来抛出异常的,一旦抛出异常后,后续的代码将无法运行。这实际上的将不合法的输出直接拒之门外,避免黑客通过这种试探找出我们程序的运行机制,从而找出漏洞,获得非法权限。
print("!!!!!!!!!!!!")
b.pause()
c.pause()
d.pause()
e.pause()

  运行结果:

原文地址:https://www.cnblogs.com/shuimohei/p/10367611.html

时间: 2024-11-10 13:57:05

<每日一题>题目17:super()继承相关的面试题的相关文章

&lt;每日一题&gt;题目28:生成随机的测验试卷(单选题)

#项目:生成随机的测验试卷文件 import random #资料库 capitals = {'北京市':'京','上海市':'沪','天津市':'津','重庆市':'渝','河北省':'冀','山西省':'晋','辽宁省':'辽','黑龙江省':'黑','吉林省':'吉','江苏省':'苏','浙江省':'浙','安徽省':'皖','福建省':'闽','江西省':'赣','山东省':'鲁','河南省':'豫','湖北省':'鄂','湖南省':'湘','广东省':'粤','海南省':'琼','四

&lt;每日一题&gt;题目1:简单的注册和登录1.0

#版本1.0,最基本的注册登录'''1.注册,将账号和密码分别写在不同的文档里面2.登录,分别从账户文档和密码文档进行读取并登录''' 1 #注册 2 Identity = input("请输入您想要注册的账号:") 3 Password = input("请输入您想要注册的密码:") 4 print("恭喜您注册成功") 5 with open('id_ZC',mode='w',encoding='utf-8') as f1,open('pw_

&lt;每日一题&gt;题目2:编写装饰器,为多个函数加上认证功能(用户账号和密码来源于文件)

这里做个最简单的账号密码验证,主要为了实现装饰器同时对多个函数起作用 1 FLAG = False #加一个变量防止多次登录验证 2 def wrapper(f): 3 def inner(*args,**kwargs): 4 '''登录程序''' 5 global FLAG #将FLAG变量设置成全局变量 6 if FLAG: 7 ret = f(*args, **kwargs) 8 return ret 9 else: 10 username = input('username:') 11

&lt;每日一题&gt;题目16:简单的python练习题(1-10)

#1.python程序中__name__的作用是什么? __name__这个系统变量用来表示程序的运行方式. 如果程序在当前膜快运行,__name__的名称就是__main__, 如果不在(被调用),则显示为导入模块的名称. 扩展:常常这样写if __name__ == "__main__":来表名这是整个工程开始运行的入口. 效果:如果直接从这个文件执行,if为Turn,可以运行if后面的程序 如果被调用,if为False,不执行if后面的程序 #2.表达式int('11111',2

&lt;每日一题&gt;题目24:冒泡排序

''' 冒泡排序:比较相邻元素,顺序错误就交换顺序 ''' import random import cProfile def bubble_Sort(nums): for i in range(len(nums)-1): for j in range(i+1,len(nums)): if nums[i] > nums[j]: # max = nums[i] # nums[i] = nums[j] # nums[j] = max #python有更好的写法 nums[i],nums[j] = n

&lt;每日一题&gt;题目26:选择排序(冒泡排序改进版)

''' 选择排序:选择最小的,以此类推 ''' import random import cProfile def select_Sort(nums): for i in range(len(nums)-1): for j in range(i+1,len(nums)): if nums[i] > nums[j]: # max = nums[i] # nums[i] = nums[j] # nums[j] = max #python有更好的写法 nums[i],nums[j] = nums[j]

&lt;每日一题&gt;题目27:插入排序(假)

''' 插入排序:假设元素左侧全部有序,找到自己的位置插入 ''' import random import cProfile def insert_sort(nums): for i in range(1,len(nums)): for j in range(i,0,-1): if nums[j-1] > nums[j]: nums[j-1],nums[j] = nums[j],nums[j-1] return nums nums = [random.randint(0, 10000) for

&lt;每日一题&gt;题目28:简单的python练习题(51-60)

#51.一行代码实现1-100的和 sum(range(1,101)) #52.如何在一个函数内部修改全局变量 ''' 利用global ''' #53.字典如何删除和合并2个字典 ''' del dic['name'] #删除 dic.update(dic2) #合并 ''' #54.谈下python的GIL ''' 全局解释器锁,同一进程中多线程同时只有一个线程能霸占python解释器(加了GIL),其他线程无法进行,该线程结束后才能运行. 多进程可以有多个python解释器,可以实现多个进

&lt;每日一题&gt;题目29:五个数字能组成多少互不重复的四位数

#有五个数字:1.2.3.4.5,能组成多少个互不相同且无重复数字的四位数?各是多少? e =[] for a in range(1,6): for b in range(1,6): for c in range(1,6): for d in range(1,6): if a!=b and a!=c and a!=d and b!=c and b!=d and c!=d: e.append(str(a)+str(b)+str(c)+str(d)) print("组成数量:%d" %le