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
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
*/

posted @ 2019-08-16 00:20  spnooyseed  阅读(429)  评论(0编辑  收藏  举报