2018.12.20 今日所学
Posted zty1304368100
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018.12.20 今日所学相关的知识,希望对你有一定的参考价值。
今日所学 :
1. isinstance , type , issubclass
2.如何区分方法和函数(代码)
3.反射(重要)
1. isinstance ,type ,issubclass
isinstance(椅子音死ten死): 判断你给的对象是否是xx类型的.(向上判断)
#应用 def cul(a,b): #次函数用来计算数字a和数字b的相加的结果 判断传递进来的对象必须是数字.int(整数) float (小数) if (type(a)==int or type(a)==float) and (type(b)==int or type(b)==float): return a+b else: print(‘对不起,你提供的数据无法进行计算‘) print(cul(a,c))
type : 精准的判断返回xxx对象的数据类型
class Animal: def eat(self): print("刚睡醒吃点儿东西") class Cat(Animal): def play(self): print("猫喜欢玩儿") c = Cat() a=animal() print(isinstance(a,cat)) #不能向下判断 print(type(a)) # 返回 a的数据类型 print(type([])) print(type(c)) # 精准的告诉你这个对象的数据类型
issubclass: 判断xxx是否是xxx的子类
print(issubclass(Cat, Animal)) print(issubclass(Animal, Cat))
2.如何区分方法和函数(代码)
在类中 :
实例方法: 如果是类名.方法 这时是函数
如果是对象.方法 这时是方法
静态方法: 类名.方法 和对象.方法都是函数
类方法: 类名.方法 和对象.方法都是方法
这里要引入一个模块
form types import MethodType,FunctionType
3 .反射 (重要)
反射主要涉及到了4个函数
getattr(a,b) 从a中获取到b数据
setattr(a,b,c) 将a中的b更改为c(设置a中的b属性为c)
hasattr(a,b) 判断a中是否存在b数据
delattr(a,b) 删除a中b的数据(不是将原数据变成None)
以上是关于2018.12.20 今日所学的主要内容,如果未能解决你的问题,请参考以下文章