zoukankan      html  css  js  c++  java
  • python class(1)

    class Test:
        _parent1 = 'variable parent' #父类成员变量首先被初始化
        print(_parent1)
        _son_son = 'search parent'
        def __init__(self):
            print(self) #实际对应的实例化对象这里为 Test2 的实例
            print('parent')
            print(self._son) #调用子类变量
            print(self._son_son) #从下往上搜索, 子类没有则调用父类
    
        def test(self):
            print('i`m parent test') #同样的根据实际实例来确定被调用方法, 如果子类不存在则去寻找父类
        # 还有要注意的地方,不过python 内置方法也是这样的 例如__init__ 子类如果没有定义则自动
        # 调用父类,如果子类声明,则需要手动进行父类初始化
        # 如果在子类重写一写特殊方法,则需要自己去实现具体的过程,比如__setattr__ 当有属性被添加,这个方法会被自动调用
        # 如果重写则需要实现具体的__dict__ 添加过程,同样的__dict__不会自动管理属性
        # 如果没有将这些方法进行重写,则会调用父类的特殊方法(默认为Object),从而可以实现一些设计模式
    class Test2(Test):
        _son = 'variable son' #类成员首先被初始化
        _son_son = '_son_son'
        print(_son)
    
        def test(self):
            print('i`m son test')
    
    t = Test2()
  • 相关阅读:
    宏任务、微任务
    类和模块
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/alplf123/p/8979133.html
Copyright © 2011-2022 走看看