python基础语法 010 类和对象-2类属性实例属性

 1.2 类属性和实例(对象)属性

属性:定义在类中的变量

什么是属性??
    表示的是类/对象的特征
    特征是别人不具备的

属性分类?

        分为类属性和实例属性

  •         类属性(又称类变量):这个类的特征,这个群体的特征,别的类(别的群体)可能不具备
  •         实例属性(又称实例变量):是个体的特征,类当中的其他成员可能不具备

1.2.1 类属性

类属性是指这个类事物的共同特征

        如猫的特性:四条腿、两个耳朵、两只眼睛

类属性的获取:
    类名.属性
类属性:可以先天定义也可以后天学习(手动添加)

class Man:
    #定义类属性
    gender = '男'
    power = '强'

print(Man.power)  #. 表示的 ,即Man的power属性
print(Man.gender) #Man的gender属性

#后天添加的(手工添加),赋值一个新的类属性
Man.hello = 'hello world'
print(Man.hello)


""" 结果
强
男
hello world
"""

1.2.2 实例属性

实例属性的后天学习获取
一个对象具备一些特征,并不代表其他对象也具备该特征,每个对象的值不一定一样


#如果要所有handsome同一个值,就需要定义类属性class添加
xiaoyi = Man()
xiaoyi.handsome = 'very very good'
print(xiaoyi.handsome)
#very very good

xiaoer = Man()
print(xiaoer.handsome) 

# 需要自定义特征
"""结果
AttributeError: 'Man' object has no attribute 'handsome'
"""

1.2.3 类属性和实例属性的区别

class Man:
    #定义类属性
    gender = '男'
    power = '强'
    handsome = 'very'


"""
区别一:

      类属性是所有对象都有的,但每个对象都可以增加自己特有的属性,这个增加的属性是当前该对象所特有的,其他对象无法获取

#区别一:
#1-1 类属性:所有成员都是一样的
xiaoyi = Man()
xiaoer = Man()

print(xiaoyi.gender)
print(xiaoer.gender)

#1-2 实例属性:不是每个成员不一样
xiaoyi.eye = 'blue'

#print(xiaoer.eye)
"""属性错误,xiaoer没有这个属性
AttributeError: 'Man' object has no attribute 'eye'
"""
 区别二:

        实例属性自定义特有的属性,类是无法获取的

#区别二:
"""
类属性,具有被实例、对象访问
实例属性,不可以被类获取
"""
print(Man.eye)
"""类里面没有定义eye
AttributeError: type object 'Man' has no attribute 'eye'"""

此处可能会出面试题:

提问类属性和实例属性的区别

        先介绍概念,再说区别

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值