zoukankan      html  css  js  c++  java
  • Python学习第12天_类

    1、类的创建

    语法:

    class 类名():
    #类的属性
    	name = '喵酱'
    	#类的方法
    	def joke(self):
    		print('创建类成功')
    

    2、类的实例化

    语法:实例名 = 类名()

    列如:

    my_captain = Captain()
    

    意义:创建一个实例,它可以调用所属类的所有属性和方法 知识点:

    • 类和实例的关系类似于「群体和个体」
    • 群体里的每个个体都有着相同相似的特 征和行为

    3、self参数

    • 在定义实例方法时,第一个参数必须是self参数,实例在调用方法时,不需要传递参数
    • 在实例方法中需要调用类属性或其他实例方法时,必须采用self.属性名self.方法名这两种方式

    4、__init__方法

    • __init__方法会在类的实例化的时候,自动的调用,因此__init__方法也被称为初始化方法

    类的使用

    1、继承语法:classA(B)

    其中A代表子类,B代表父类 对于子类来讲,它能够继承父类所拥有的属性和方法

    2、类的多重继承

    在Python当中,定义一个类的时候可以同时继承多个父类,这种方式被称为多重继承

    例如:

    # 垃圾类
    class Waste():
        w_name = '垃圾'
    
        # ‘垃圾’类的一个方法:回收垃圾
        def recycle_w(self):
            print('回收垃圾...')
    
    
    # ‘有害垃圾’类
    class HazardousWaste(Waste):  # 括号中填写父类的变量名
        hw_name = '有害垃圾'
    
        # ‘有害垃圾’类的一个方法:回收有害垃圾
        def recycle_hw(self):
            print('回收有害垃圾...')
    
    
    # 创建‘有害垃圾’类的实例hw
    hw = HazardousWaste()
    print('子类的实例hw与父类的是否存在关联:')
    print(isinstance(hw, Waste))
    print('子类的实例hw与‘object’类的是否存在关联:')
    print(isinstance(hw, object))
    print('结论:子类默认继承‘object’类,与其存在关联!')
    
    

    运行代码后可以看到: HazardousWaste(Waste)虽然只写了一个父类Waste,却与object存在关联关系 这也印证了Python中所有的类都默认继承于object。换句话说,object是所有类的'父类'

    3、类的重写

    什么是类的方法重写呢?当我们在定义类的方法时,方法的名字和父类的一样,修改了其内容,就是类的方法重写

    动物中偶尔会出现变异的情况:假如有不会爬树的猫。就可以重新分类为'变异猫'类

    这里定义一个'猫'类和'变异猫'类,并修改了‘变异猫’类的爬树方法

    # ‘猫’类
    class Cat():
        name = '猫'
        # 爬树方法
        def climb_tree(self):
            print('可以爬树!')
    
    # ‘变异猫’类
    class VariationCat(Cat):
        v_name = '变异猫'
        # 爬树方法
        def climb_tree(self):
            print('不可以爬树!')
    
    print('‘变异猫’的实例:')
    # ‘变异猫’类的实例vc
    vc = VariationCat()
    # 调用爬树方法
    print('变异猫的爬树方法:')
    vc.climb_tree()
    # 调用父类name属性
    print('变异猫父类的name属性:')
    print(vc.name)
    print('变异猫自己的v_name属性:')
    print(vc.v_name)
    print('变异猫,同样是‘猫’,但是‘不可以爬树!’')
    print('-------------------------------------------')
    print('‘猫’的实例:')
    # ‘猫’类的实例c
    c = Cat()
    # 调用爬树方法
    print('猫的爬树方法:')
    c.climb_tree()
    # 调用name属性
    print('猫的name属性:')
    print(vc.name)
    print('虽然子类‘变异猫’修改了climb_tree()方法,但是父类完全不受影响,依然‘可以爬树!’')
    

    可以看到,子类‘变异猫’类修改了‘爬树’方法,对‘猫’类完全不影响。这就造就了‘变异猫’类不会爬树的结果,但是‘猫’类依然可以爬树

    类的重写总结:

    • 在子类中编写与父类名称一样的函数或变量就是类的重写

    • 类的方法在子类中重写之后就不可以再调用父类的该方法了

  • 相关阅读:
    IDEA 编辑器如何将tabs 分行显示
    react-native-image-zoom-viewer的使用
    react native ios Linking appstore,用于更新,模拟机操作不了
    将ios的地址和安卓的地址合并生成二维码
    error: Build input file cannot be found: '/Users/zhou/Downloads/IQKeyboardManager-master/IQKeyboardManager/IQToolbar/IQUIView+IQKeyboardToolbar.m'
    react 项目中引入iconfont
    Task :react-native-yunpeng-alipay:verifyReleaseResources FAILED
    react native 支付宝接入,亲测--安卓版
    react native 支付宝接入,亲测
    iOS---------金额转大写
  • 原文地址:https://www.cnblogs.com/jianwen520/p/13131619.html
Copyright © 2011-2022 走看看