zoukankan      html  css  js  c++  java
  • 多态

    函数中继承类

    返回父类的父类函数(),使用super(子类,self).父类的函数()

    # coding:utf-8
    
    class Animal:
        def say(self):
            print("animal")
    
    class Dog(Animal):
        def say(self):
            # 这个super()括号中可写可不写了,都是继承一个父类,指定的类也是改自身
            return super(Dog,self).say()
    class Dog1(Animal):
        def say(self):
            print("Dog")
    class Cat(Animal):
        def say(self):
            print("Cat")
            
    
    # 函数中的参数还可以使用分号
    def animal_say(a: Animal): #这里把类的参数当作实例传进去了,并没有所谓的继承到函数中
        # 参数值使用冒号是函数注释,指的是输入的类型,还有个箭头指的是输出的类型,是从python3.5开始有的
        a.say()
    dog = Dog1() 
    cat = Cat() 
    animal_say(dog)   # Dog
    animal_say(cat)  # Cat
    a = Dog()
    # 这里难道是return返回的这个None
    # 返回父类的say()函数,使用super(子类,self).父类的函数()
    print(a.say()) # animal None
    # 继承的父类中使用参数,不可以,缘由是父类中也没有构造方法
    b = Dog()
    print(b.say()) #  # animal None
    

    函数的参数有冒号

    __annotations__函数的注解

    def fun(a:int): # 这个有点指定类型的意思
        print(fun.__annotations__) # __annotations__函数的注解
        print(a)
    
    fun('a') # # {'a': <class 'int'>} a
    fun(1) # {'a': <class 'int'>} 1
    
    #!/usr/bin/python3
    # -*- coding:utf-8 -*-
     
    '''
    冒号是参数的类型建议符,
    告诉程序员希望传入的实参的类型。
    函数后面跟着的箭头是函数返回值的类型建议符,
    用来说明该函数返回的值是什么类型。
    '''
    def twoSum(num1: int, num2: int=100) -> int:
        sum = num1 + num2
        return sum
        
     # 类型建议符并非强制规定和检查,也就是说即使传入的实际参数与建议参数不符,也不会报错。
    if __name__ == "__main__":
        print(twoSum.__annotations__)  # {'num1': <class 'int'>, 'num2': <class 'int'>, 'return': <class 'int'>}
        print(twoSum(1,2)) # 3
        print(twoSum(1)) # 101
        print(twoSum('I love ','Arsenal')) # I love Arsenal
        #print(twoSum('Arsenal'))
    
    
  • 相关阅读:
    Android:Service通知Activity更新界面
    greendao 查询之数据去重
    Android GreenDao 深查询 n:m 的关系
    java 获取当天(今日)零点零分零秒
    Android Theme.Dialog 到光 AppCompatDialog
    Android 如何利用Activity的Dialog风格完成弹出框设计
    上周热点回顾(9.14-9.20)团队
    .NET跨平台之旅:将示例站点从ASP.NET 5 Beta5升级至Beta7团队
    上周热点回顾(9.7-9.13)团队
    上周热点回顾(8.31-9.6)团队
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15605117.html
Copyright © 2011-2022 走看看