4.如何在类外,给对象动态添加绑定方法

import types
def qingtianzhu(obj,name):
print("请我叫我一柱擎天,简称{},颜色是{}".format(name,obj.color))
obj.qingtianzhu = types.MethodType(qingtianzhu,obj)
obj.qingtianzhu("擎天柱")

8.菱形继承中,如何查看多继承调用顺序关系

'''mro列表'''

12.写一个能体现多态的案例

class Soldier():
def attack(self):
pass def back(self):
pass # 陆军
class Army(Soldier):
def attack(self):
print("[陆军]搏击,ufc,无限制格斗,太极,八卦,占星,制作八卦符") def back(self):
print("[陆军]白天晨跑10公里,也行800百公里") # 海军
class Navy(Soldier):
def attack(self):
print("[海军]潜泳水下30个小时,手捧鱼雷,亲自送到敌人的老挝,炸掉敌人的碉堡") def back(self):
print("[海军]每小时在海底夜行800公里,游的比鲨鱼还快") # 空军
class AirForce(Soldier):
def attack(self):
print("[空军]空中夺导弹,手撕飞机,在空中打飞机,精准弹幕") def back(self):
print("[空军]高中跳伞,落地成盒") army_obj = Army()
navy_obj = Navy()
af_obj = AirForce() lst = [army_obj,navy_obj,af_obj] # 对象列表
strvar = """
1.所有兵种开始攻击训练
2.所有兵种开始撤退训练
3.空军练习攻击,其他兵种练习撤退
"""
print(strvar)
num = input("将军请下令,选择训练的种类")
for i in lst:
if num == "":
i.attack()
elif num == "":
i.back()
elif num == "":
if isinstance(i,AirForce):
i.attack()
else:
i.back()
else:
print("将军~ 风太大 我听不见~")
break

19.模拟int强转整型操作,实现相应方法

import math
class MyInt(): def calc(self,num,sign=1): strvar = num.lstrip("")
if strvar == "":
return 0
return eval(strvar) * sign def __call__(self,num):
if isinstance(num , bool):
if num == True:
return 1
elif num == False:
return 0 elif isinstance(num,int):
return num elif isinstance(num,float):
# 方法二
"""
if num >= 0:
return math.floor(num)
else:
return math.ceil(num)
"""
return math.floor(num) if num >= 0 else math.ceil(num) elif isinstance(num,str):
if (num[0] == "+" or num[0]== "-") and num[1:].isdecimal():
if num[0] == "+":
sign = 1
else:
sign = -1 return self.calc(num[1:],sign) elif num.isdecimal():
return self.calc(num)
else:
return "老铁,这个真转不了" myint = MyInt() res = myint(True)
print(res)
res = myint(100)
print(res)
res = myint(3333.14)
print(res, type(res))

20.计算类中自定义成员个数

class MyClass():
pty1 = 1
pty2 = 2
__pty3 = 3
pyt3 =10
pty100 = 90 def func1():
pass def __func2():
pass def __func3():
pass def __len__(self):
lst = [] dic = MyClass.__dict__ # 遍历类中所有成员
for i in dic: # 遍历类中所有成员
if not(i.startswith("__") and i.endswith("__")): # 如果开头和结尾都不是以双下划线结尾
lst.append(i) # 将符合条件的成员添加到列表中 return len(lst)

23.获取当前类继承的父类

'''bases'''

最新文章

  1. View & draw
  2. ORACLE 分析函数整理汇总
  3. OpenFlow Switch学习笔记(二)——OpenFlow Ports
  4. 理解CSS居中
  5. windows创建桌面快捷方式的VBA脚本
  6. ###《High-level event recognition in unconstrained videos》
  7. HAProxy 基本翻译
  8. 折腾iPhone的生活——设置“查找我的iPhone”,让iPhone更防盗
  9. poj 1087.A Plug for UNIX (最大流)
  10. C# 解析User-Agent工具
  11. 配置文件入门 - WebConfig.config常用配置节点介绍
  12. Codeforces Round #306 (Div. 2) D.E. 解题报告
  13. nginx tcp proxy 连接保持设置
  14. IntelliJ IDEA 发布13版本——创造java奇迹
  15. openbr on linuxmint13/ubuntu12.04/debian7 x64 facial recognition [Compile from source!!!]
  16. SQL 和 .NET Framework 数据类型对应表
  17. Ollydbg中的内存断点和硬件断点的区别
  18. 系统的Drawable(四)-LayerListDrawable
  19. Maven Assembly插件介绍
  20. Azure Redis 缓存的 ASP.NET 会话状态提供程序

热门文章

  1. Spring升级案例之IOC介绍和依赖注入
  2. [斯坦福大学2014机器学习教程笔记]第六章-决策界限(decision boundary)
  3. Ethical Hacking - GAINING ACCESS(16)
  4. noi-vim配置
  5. [spring] -- 事务篇
  6. Ubuntu安装Docker(官方文档翻译)
  7. springboot 跨域设置
  8. Java基础(一)基础常识
  9. [leetcode/lintcode 题解] 谷歌面试题:找出有向图中的弱连通分量
  10. http安全