zoukankan      html  css  js  c++  java
  • day19 反射

    今日所学 :

     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)

  • 相关阅读:
    配置步骤
    swap区
    Oracle的left join中on和where的区别
    drop与truncate
    关于trace
    oracle执行计划连接方式
    oracle系统结构
    查询存档
    oracle统计信息
    分区索引
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10150977.html
Copyright © 2011-2022 走看看