zoukankan      html  css  js  c++  java
  • 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
    判断他是不是可执行的
























  • 相关阅读:
    Android中Environment与StatFs获取系统/SDCard存储空间大小
    MySQL经常使用命令
    Quartz Cron
    【php】在Windows2003下配置Apache2.4与php5.4
    UVA 10526
    Javascript 进阶 封装
    8天玩转并行开发——第一天 Parallel的使用
    5天玩转C#并行和多线程编程 —— 第五天 多线程编程大总结
    5天玩转C#并行和多线程编程 —— 第四天 Task进阶
    5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task
  • 原文地址:https://www.cnblogs.com/Mrszhao/p/9568159.html
Copyright © 2011-2022 走看看