zoukankan      html  css  js  c++  java
  • python 类和实例【对象、方法】区分

    对象

    类对象 就是类的名字
    class A:
    pass
    这里定义一个类,A就是类对象
    实例对象 类创建的对象
    a = A() 此时a就是一个实例对象

    属性

    类属行 就是类所拥有的属性,它被所有的类对象所共有,在内存中只有一个副本,类似于c++和Java中的静态成员变量.对于公有的类属性,类对象和实例对象都可以访问类属性.

    class A(object):
         name = "你好 "    # 共有类属性 
         __age = 18        # 私有类属性
    p = A()
    print(p.name)   # 实例对象调用类属性
    print(A.name)   # 类对象调用类属性
    #  print(p.__age) 错误,在外部不能访问私有类属性
    print(p._A__age)  # 正确,可以使用这种方式调用,但是不建议使用
    p.age = 19   # 这是实例属性  , 在实例对象上面建立的属性
    # A.age       # 错误, 类属性不能调用实例属性 ,, 反之成立 , 实例属性可以调用共有类属性
    
    

    方法
    实例方法:
    定义: 第一个参数必须是实例对象,一般用self来代替,通过它来传递实例的属性和方法(也可以传递类的属性和方法)
    调用:只能由实例来调用
    类方法:
    定义:使用装饰器@classmethod,第一个参数必须是类对象,该参数名一般约定为cls,通过它来传递类属性和方法(不能传递实例对象和方法)
    调用: 实例对象和类对象都可以调用
    静态方法:
    定义:使用装饰器你@staticmethod,参数没有要求,不需要self,cls.但是方法中不能使用类或实例的任何属性和方法.就是一个普通的函数放到了类中
    调用: 实例对象和类对象都可以调用
    在这里插入图片描述

    对于用法而言,实例方法只能被实例对象调用,其他两种实例对象和类对象都可以调用

    /*
    上面一小段内容来自
    作者:莫辜负自己的一世韶光
    链接:https://www.jianshu.com/p/309caac72272
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
    */

  • 相关阅读:
    【LeetCode每日一题】2020.6.9 面试题46. 把数字翻译成字符串
    【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
    【NOIP2017提高A组模拟9.17】猫
    【NOIP2017提高A组模拟9.17】组合数问题
    JZOJ 11.21 提高B组反思
    【NOIP2017提高A组模拟9.12】Arrays and Palindrome
    JZOJ【NOIP2013模拟联考14】隐藏指令
    JZOJ 11.14 提高B组反思
    CSP2020复赛游记
    JZOJ 【NOIP2017提高A组模拟9.14】捕老鼠
  • 原文地址:https://www.cnblogs.com/spnooyseed/p/12870927.html
Copyright © 2011-2022 走看看