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)

猜你喜欢

转载自www.cnblogs.com/zty1304368100/p/10150977.html
今日推荐