• py 的 第 25 天


    issubclass/type/isinstance

    class a:
    pass
    class b(a):
    pass
    print(issubclass(b,a))查看b是不是a的子子孙孙类/派生类

    class  a:

      pass

    b=a()

    print(b,type(b))  获取当前对象是由哪个类创建的

    if  type(b) == a

        print(‘xxx’)   给你一个对象,判断对象是不是由某一个指定的类?     type--》type(对象名)==类名

    class  a:

      pass

    b=a()

    print(isinstance(b,a))     当前对象是否由这个类组成的    检查第一个参数(对象)是否是第二个参数(类)的实例

    如果 a 继承了上面的,这个b也跟着显示true

    给你一个对象,判断对象是不是由某一个指定的类和其父类组成    isinstance    --》    isinatance(对象名,类名)
    函数和方法
    对象。xxx xxx是方法 类。xxx xxx是函数 xxx xxx就是函数
    from types import methodtype functiontype m方法self不用传 f函数 每个都自己传







    反射 ,不是。 hasattr判断对象是否包含对应的属性 (模块名,属性(方法))判断这个模块里有没有后者,
            isinstance判断对象的变量类型 ( xxx ,int) xxx是不是数字(xxx,functiontype)xxx是不是函数
    class 类名(object):
        变量=“中”
          def 方法名(self):
            pass
    对象=getattr(类名,“方法名” (或者“变量”)) 本质上就是 类名。
    “方法名” (或者“变量”) 根据字符串为参数,去类中寻找与之同名的成员
    print(对象)          打印的是上面的

    上面的是函数,下面的是方法

    对象=类名()
    变量=getattr(对象,“方法”)相当于对象。方法 根据字符串(第二个)为参数,去对象去对象(第一个)中寻找与之同名的成员
    print(变量)






    反射补充
    getattr 根据字符串的形式,去对象中找成员。
    hasattr 根据字符串的形式,去判断对象中是否有成员
    setattr 根据字符串的形式,动态的设置一个成员(内存)
    delattr
    根据字符串的形式,动态的删除一个成员(内存)
    setattr添加成员
    setattr(模块(自己写的),“新增的成员”,999) 这个是设置到内存的,在内存中这个模块加了这个成员,模块里是没有的,运行任何程序都需要给他装进内存中

    模块就是对象 给这个对象新增个成员
    变量=getattr(模块(自己写的),“新增的成员”)
    print(变量) 999

    setattr 添加函数
    setattr(模块(自己写的),“函数名“,lambda x:x+1)
    变量=getattr(模块(自己写的),“函数名”)
    变量1=变量(1) 把1传到函数里
    print(变量)

    delattr
    delattr(模块(自己写的),“函数名”)
    变量=getattr(模块(自己写的),‘函数名’)
    print(变量) 这里没有了打印不出来了 报错


    class 类名(object):
        def __init__(self,成员):
            self.成员=成员              这行下面再加个 self。成员1=none 这样后面再传值,外人看知道
    对象=类名(1) 成员=1
    变量=getattr(对象,a1)
    print(变量)
    变量=setattr(对象,“成员1”,2) 这个在上面self里传了个参数
    print(变量) 这样也可以,但是别这么做,别人看代码的时候很是懵逼


    print(callable(类,函数,对象,方法))true flase
    判断他是不是可执行的
























  • 相关阅读:
    DB2 中like的通配符以及escape关键字定义转义字符的使用
    Java编译后产生class文件的命名规则
    在Servlet的GenericServlet类中为什么有两个init()方法
    Java Web开发笔记
    EL表达式
    将NSString转换编码集变为GBK或GB2312
    转,ios开源程序集
    整理 被appstore 拒绝审核通过的原因
    在程序中如何把两张图片合成为一张图片
    object c 操作date类型
  • 原文地址:https://www.cnblogs.com/Mrszhao/p/9568159.html
Copyright © 2020-2023  润新知