zoukankan      html  css  js  c++  java
  • Python学习 :面向对象 -- 类的成员

    类的成员

    一、字段

    - 字段可以分为'普通字段'和'静态字段'两种

    - 普通字段(保存在对象中,执行时只能通过对象来进行访问)

    - 静态字段(保存在类中,在内存中只保存一份数据(可以有效地节约内存的空间),执行时可以通过对象来访问,也可以通过类来访问)

    class Province:
        country = '中国'  # 静态字段
    
        def __init__(self, name):
            self.name = name  # 普通字段
    
        def show(self):  # 方法
            print(self.name)
    
    
    Beijing = Province('北京')
    Shanghai= Province('上海')
    print(Beijing.name, Province.country)  # 通过类来访问静态对象country
    print(Shanghai.name,Shanghai.country)  # 通过对象来访问静态对象country
    ===>北京 中国
    ===>上海 中国

    二、方法

    - 方法可以分为三种'普通方法'、'静态方法'以及'类方法'三种

    - 普通方法,保存在类中,通过对象来调用,self参数为对象

    - 静态方法,保存在类中,通过类来直接调用

      静态方法的特殊之处:1、self 参数不再是必须的

                2、在方法前加上装饰器 @staticmethod

                3、也可以传入对应的参数

    - 类方法,    保存在类中,通过类来直接调用,cls参数为类

      类方法的特殊之处:    1、需要参数,一般使用为 cls

                 2、在方法前加上装饰器 @classmethod

    应用场景:

    - 当对象中需要保存值,调用方法时需要使用对象中的值,此时使用普通方法更为合适

    - 当不需要任何对象中的值时,使用静态方法或类方法比较合适

    class Method:
        # 普通方法
        def nml(self):
            print('普通方法')
    
        # 静态方法
        @staticmethod
        def stm():
            print('静态方法')
    
        # 类方法
        @classmethod
        def cls(cls):
            # 一般在类方法中的参数为cls ,cls 是类名
            print('类方法')
    
    Method.stm()
    Method.cls()
    ===>静态方法
    ===>类方法

    三、属性(特性)

    属性,保存在类中

    class Info:
        @property
        def med1(self):
            print('med1')
    
        def med2(self):
            print('med2')
        def med3(self,v):
            print(v)
        def med4(self):
            print('med4')
    
        per = property(fget=med2,fset=med3,fdel=med4)
    
    obj = Info()
    obj.med1
    ret = obj.per       # fget的访问方式
    obj.per = 'med3'    # fset的访问方式
    del obj.per         # fdel的访问方式
    ===>med1
    ===>med2
    ===>med3
    ===>med4
    
  • 相关阅读:
    调试某狐木马驱动被杀后系统卡死开机
    情景剧:C/C++中的未定义行为(undefined behavior)
    汇编概念辨析(Intel/AT&T syntax、GAS、NASM)
    软考准考证打印设置(IE1909)
    基于redis的分布式锁 RedissonLock解锁异常解决
    深入理解synchronized
    单利模式
    归并排序
    旧电脑硬盘回收
    萤石、乐橙、3D
  • 原文地址:https://www.cnblogs.com/ArticleYeung/p/10460401.html
Copyright © 2011-2022 走看看