类是某一类具有通用特点的事务的统称 类的定义 类的三要素是类名、属性、方法
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
方法:类中定义的函数。
实例化:创建一个类的实例,类的具体对象。
对象:通过类定义的数据结构实例。
类的定义
#定义一个Person类,类名首字母一般大写
class Person(object):#object 是python中的基类,所有自定义的类都是基于object,可写可不写
name = 'gaozhiyuan' # name 就是Person类的属性 在函数中叫做变量
print(Person.name) #访问类属性值
#也可以修改属性值
Person.name = 'gao'
print(Person.name)
gaozhiyuan
gao
定义类之后,为了进行操作方便还要进行实例化,好比Person这个类是抽象的,男人、女人、老人、小孩统称为Person,是抽象的,实际操作中往往是对具体对象的特点的操作,所以要进行类的实例化,简而言之,类的实例化就是从抽象的类到具体的对象。
类的实例化
#对Person类进行实例化 xiaoming叫做Person类的实例对象
xiaoming = Person()
#访问类属性
print(xiaoming.name)
#也可以修改属性值
xiaoming.name = 'xiaoming'
print(xiaoming.name)
gao
xiaoming
类的属性实例均有,实例可以调用类属性,但是类不可以调用实例属性
类属性,类可以访问到,实例也可以访问到
实例属性类不可以访问到,但是得实例可以访问到
#类的属性实例均有,实例可以调用类属性,但是类不可以调用实例属性 实例属性类不可以访问到,但是得实例可以访问到
xiaoming = Person()
#一个“实例”的“特征”,就是“属性”
xiaoming.sex = 'male'#添加实例属性
print(xiaoming.sex)#实例成功访问实例属性
print(xiaoming.name)#实例成功访问l类属性
print(Person.sex)#类试图访问实例型,系统报错
male
gaozhiyuan
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-16-77eb3ffd3169> in <module>
4 print(xiaoming.sex)#实例成功访问实例属性
5 print(xiaoming.name)#实例成功访问l类属性
----> 6 print(Person.sex)#类试图访问实例型,系统报错
AttributeError: type object 'Person' has no attribute 'sex'
#类属性,类可以访问到,实例也可以访问
class Person(object):#object 是python中的基类,所有自定义的类都是基于object,可写可不写
name = 'gaozhiyuan' # name 就是Person类的属性 在函数中叫做变量
xiaoming = Person()
print(xiaoming.name)#实例访问类属性
print(Person.name)#类访问类属性
gaozhiyuan
gaozhiyuan
每个实例都是一个独立的变量空间。不同实例之间的空间互相不可见
xiaoming = Person()
xiaoming.name = 'xiaoming'
print(xiaoming.name,id(xiaoming))
xiaoming 2619835796000
gaozhiyuan = Person()
print(gaozhiyuan.name,id(gaozhiyuan))
gaozhiyuan 2619835230360