美文网首页
python基础十——继承、多态、封装

python基础十——继承、多态、封装

作者: 我想走走 | 来源:发表于2018-03-05 14:19 被阅读8次
    class Class1:
        money = 10
        def __init__(self,name):
            self.name = name
            print('我是父类,执行了')
        def method1(self):
            print('555555555555555')
    class Class2(Class1):
        money = 1000
        #私有的变量(封装)
        __star = 'fengzi'
        def __init__(self,name,age):
            #调用父类的方法
           # Class1.__init__(self,name)
            super().__init__(name)
            self.age = age
            print('我是子类,执行了')
        def method1(self):
            # 调用父类的方法
            #Class1.method1(self)
            super().method1()
            print('66666666666666')
        def method_new(self):
            print(self.__star)
    print(Class2.money)
    # Class2.method1()
    s1 = Class2('fengfeng',18)
    s1.method1()
    #可以通过这种方式访问私有属性
    print(Class2._Class2__star)
    print(Class2.__dict__)
    #还可以间接访问
    Class2.method_new(s1)
    

    反射

    class Class_a:
        faker = 'fake'
        def __init__(self,name,addr):
            self.name = name
            self.addr = addr[图片上传中...(NA@2NE]{((6OW4G%8[))8G6.png-94664-1520230442274-0)]
    
        def method1(self):
            print('5556')
        def method2(self):
            print('6666')
    b1 = Class_a('xiye','shanghai')
    print(hasattr(b1,'name'))
    print(hasattr(b1,'method1'))
    print(getattr(b1,'name','名字'))
    print(getattr(b1,'method1','方法一'))
    func = getattr(b1,'method1','方法1')
    func()
    setattr(b1,'xiaoming','a')
    print(b1.__dict__)
    delattr(b1,'name')
    print(b1.__dict__)
    
    setattr(b1,'func1',lambda x:x+1)
    print(b1.__dict__)
    print(b1.func1(10))
    
    1.png

    动态导入模块

    # from m1 import t
    # t.test1()
    
    #返回的永远是最顶层的模块
    # module_t = __import__('m1.t')
    # print(module_t)
    # module_t.t.test1()
    #
    # #from m1.t import *
    # #私有化之后这样可以调用,没有绝对的私有
    # from m1.t import test1,_test2
    # test1()
    # _test2()
    
    #导入方式
    #直接能拿到对应的模块
    import importlib
    a = importlib.import_module('m1.t')
    print(a)
    a.test1()
    a._test2()
    

    相关文章

      网友评论

          本文标题:python基础十——继承、多态、封装

          本文链接:https://www.haomeiwen.com/subject/ifxhfftx.html