zoukankan      html  css  js  c++  java
  • 理解Python中的类对象、实例对象、属性、方法

    转自:https://www.cnblogs.com/wf-skylark/p/9009770.html

    class Animal(object):  # 类对象
     
        age = 0  # 公有类属性
        __like = None  # 私有类属性
     
        def __init__(self):  # 魔法方法
            self.name = 'haha'  # 公有实例属性
            self.__sex = 'man'  # 私有实例属性
     
        def smile(self):  # 公有方法  self指向实例对象
            pass
     
        def __jump(self):  # 私有方法
            pass
     
        @classmethod
        def run(cls):  # 类方法  cls 指向类对象
            pass
     
        @staticmethod
        def msg():  # 静态方法,可以没有参数
            pass
     
    '''
    # 类对象:
    将具有相似属性和方法的对象总结抽象为类对象,可以定义相似的一些属性和方法,不同的实例对象去引用类对象的属性和方法,能减少代码的重复率。
     
    # 类属性:
    类对象所有的属性,类对象和实例对象均可以访问,被它们共同拥有;
     
    # 公有类属性:
    可以在类外修改类属性,需要通过类对象引用直接修改;
    类内可以通过类方法修改类属性。
    如果通过实例对象来引用类属性,相当于实例对象在实例方法中创建了一个和类属性相同的名字,等同于局部变量实例属性,和类属性无关;
     
    # 私有类属性:
    类外通过类对象引用不能直接更改,只能通过实例方法调用类对象更改。
     
    # 类方法:
    需要修饰器@classmethod,标示其为类方法,类方法的第一个参数必须为类对象,一般用cls表示,通过cls引用的必须是类属性和类方法。
     
    # 静态方法:
    需要修饰器@staticmethod,标示其为静态方法。需要做一些功能,和类相关,但不需要类和对象参与,此时可以使用静态方法,静态方法可以不需要参数。
     
    # 实例对象:
    通过类对象创建的实例对象
     
    # 实例属性:
    通过方法定义的属性
     
    # 私有实例属性:
    __开头定义的变量名;只能通过方法调用来更改
    公有实例属性:
    可以通过实例对象重新定义
     
    # 实例方法:
    第一个参数公认为self,可以调用类对象和实例对象。
     
    # 私有方法:
    只能在类内调用,如果类外调用,则需要类内的公有方法调用类内的私有方法,在类外调用这个公有方法,则间接调用了私有方法。
    一个程序中最核心的内容,不能随意调用,可以设置为私有方法,通过公有方法的判断去调用私有方法!
     
    # 公有方法:
    可以在类内类外随意调用。
     
    # 魔法方法:
    例如__init__方法,用两个__前后包裹的方法
    '''
  • 相关阅读:
    【CF103D】Time to Raid Cowavans-分块+离线处理
    【BZOJ3992】序列统计(SDOI2015)-NTT+循环卷积+快速幂
    【BZOJ3527】力(ZJOI2014)-FFT
    【HDU4609】3-idiots-FFT+生成函数
    【LuoguP3803】多项式乘法-FFT/NTT模板题(附带FFT/NTT简单介绍)
    网络流24题解题总结(更新中)
    【BZOJ3531】旅行(SDOI2014)-树链剖分+动态加点线段树
    [Noip2012]借教室
    bzoj3394:[Usaco2009 Jan]Best Spot 最佳牧场
    [NOIP2014]无线网站发射器选址
  • 原文地址:https://www.cnblogs.com/zhangchao0515/p/11927975.html
Copyright © 2011-2022 走看看