zoukankan      html  css  js  c++  java
  • 类和实例,super()函数

    class Foo: 
    
        def __init__(self, name):
            self.name = name 
    
        def ord_func(self):
            """定义实例方法,至少有一个self参数 """
            print('实例方法')
    
        @classmethod
        def class_func(cls):
            """ 定义类方法,至少有一个cls参数 """
            print('类方法')
    
        @staticmethod
        def static_func():
            """ 定义静态方法 ,无默认参数"""
            print('静态方法') 
    
    # 调用实例方法
    f = Foo("Jack")
    f.ord_func()
    Foo.ord_func(f) # 请注意这种调用方式,虽然可行,但建议不要这么做!
    
    # 调用类方法
    Foo.class_func()
    f.class_func()  # 请注意这种调用方式,虽然可行,但建议不要这么做!
    
    # 调用静态方法
    Foo.static_func()
    f.static_func() # 请注意这种调用方式,虽然可行,但建议不要这么做!
    

    子类继承父类

    Python3的继承机制不同于Python2。其核心原则是下面两条,请谨记!

    • 子类在调用某个方法或变量的时候,首先在自己内部查找,如果没有找到,则开始根据继承机制在父类里查找。
    • 根据父类定义中的顺序,以深度优先的方式逐一查找父类!

    子类调用父类的成员
    语法:super(子类名, self).方法名(),需要传入的是子类名和self,调用的是父类里的方法,按父类的方法需要传入参数。

    class A:
        def __init__(self, name):
            self.name = name
            print("父类的__init__方法被执行了!")
        def show(self):
            print("父类的show方法被执行了!")
    
    class B(A):
        def __init__(self, name, age):
            super(B, self).__init__(name=name)
            self.age = age
    
        def show(self):
            # super(B, self).show()
            print("子类的show方法被执行了!")
    
    obj = B("jack", 18)
    obj.show()
    
  • 相关阅读:
    802.11标准及无线网运行模式
    linux中top命令使用及查看tcp连接
    DNS信息收集命令nslookup
    Openvas安装
    nc高级应用
    poj 1411 Calling Extraterrestrial Intelligence Again(超时)
    poj 1046 Color Me Less
    1215 迷宫
    2666 Accept Ratio(打表AC)
    2021 中庸之道
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13476564.html
Copyright © 2011-2022 走看看