zoukankan      html  css  js  c++  java
  • 反射,类,封装

    # inp = input("请输入模块:")#字符串形式导入模块
    # r = __import__(inp)
    # r = __import__(lib.comm.s1,fromlist=True)
    # inp1 = input("请输入函数:")#字符串形式寻找函数
    # target = getattr(r,inp1)#target目标,func功能
    # print(target())
    #反射,根据字符串的形式去某个模块寻找东西
    import comm
    # print(hasattr(comm,"NAME"))#判断是否有全局变量NAME
    # setattr(comm,"AGE",18)#在内存里加全局变量AGE
    #
    # delattr(comm,"NAME")#在内存里删除
    # url = input("请输入url:")
    # inp = url.split("/")[-1]
    # if hasattr(comm,inp):
    # target_func = getattr(comm,inp)
    # r = target_func()
    # else:
    # print("404")
    #面向对象,封装
    class Tom:
    def __init__(self,bk):#方法中执行具体的封装操作,称为初始化
    """
    构造方法
    :param bk:
    """
    self.backend = bk
    def __del__(self):#解释器销毁对象时自动调用:析构方法
    pass
    def h1(self):
    print(self.backend)
    def h2(self):
    pass
    # obj = Tom()
    # obj.xxx = "good"
    # obj.h1()
    # obj2 = Tom()
    # obj2.xxx = "ok"
    # obj2.h1()
    obj = Tom("xx")#执行__init__方法,创建类的对象
    obj.h1()
    class zi(Tom):
    def xx(self):
    pass
    obj2 = zi("jim")
    obj2.h1()
    #self,形式参数,代指执行方法的对象,python内部传递
    ## 封装:
    # 使用场景:当同一类型的方法具有相同参数时,直接封装到对象即可。
    # 使用场景:把类当做模板,创建多个对象(对象内封装的数据可以不一样)
    ## 继承:
    # 派生类可以继承基类中所有的功能
    # 派生类和基类同时存在时,优先找派生类
    # python类可以同时继承多个类(c#,java不可以)
    # 优先自己,左边,右边,(共同指向一个父类时不优先这个父类,图)(3.5)
    ## 多态:(python多态没有意义)
    #python本身支持多态
    #扩展:
    #重载,函数名相同,参数个数不同(python不支持)
    #重写,派生类中重新实现基类中的方法
    #面向对象的三个特性:封装,继承,多态
    #1.代码级别的接口(python默认没有接口这么一说,
    # 其他语言interface IFather,约束类,类接口必须实现接口方法)
    #2.项目级别的接口,就是一个地址
  • 相关阅读:
    MYSQL 优化(二),持续更新收藏
    一些linux命令 备份下
    lsyncd +xinetd+syncd 多服务器文件同步
    阿里slb+ecs+https
    微擎 从 php5 到php7 的各种填坑 持续更新
    lmap
    微擎的ifp ife ifpp
    工具索引 mark名字
    Funny Bug || Sky Hole
    mysql 查询小技巧
  • 原文地址:https://www.cnblogs.com/currynashinians000/p/8661998.html
Copyright © 2011-2022 走看看