面向对象编程--类属性,实例属性

面向对象编程–类属性,实例属性

       ##  类属性:类属性是在类中的方法之外定义的属性,又分为公有属性和私有属性,不像C++通过public和private关键字
                  区别公有属性何和私有属性,Python是以是属性命名的方式来区分的,如果在属性明前加了两个下划线,则表明
                  该属性是私有属性,否则就是公有属性。
       ##  实例属性: 实例属性又称静态属性,实例属性作为实例对象的属性,不能通过类名调用,只能单独给特定的对象所拥有
                  。也就是说,实例对象是系统另外开辟了一个内存给其类的实例化存取相应的初始化对象,实例属性在类中的构
                  造函数__init__中定义,定义以self作为前缀。

下面以一段代码来解释上述性质:

_author_ = "huangwave"

# 类
# 一个类即是对一类拥有相同属性的对象的抽象
# ,蓝图,原型。在类中丁怡了这些对象的都具备
# 的属性,共同的方法。

# 对象
#
# 一个对象是对一个类的实例化后的实力,
# 一个类必须领过实例化方可在程序中调用,
# 一个类可以实例化多个对象,每个对象亦有
# 不同的属性,就像人类是指所有人,每个人
# 是指具体的对象,人和人有相同,亦有不同。

# creat a object ,human
class Person(object):
    # def a init
    n = 1  # 类变量
    def __init__(self, name, shenggao, tizhong):
        # 构造函数
        # 在实例化的时候,
        # 做一些实例化的初始化工作
        self.name = name  # 实例变量(静态属性),实例变量的作用域是自己本身
        self.shenggao = shenggao
        self.tizhong = tizhong
        print("测试对象的名字是%s,身高为%s,体重为%s" %(self.name,
                                         self.shenggao, self.tizhong))

    # def a classmethod
    def check_health(self):
        # 类方法本身都在类里存储
        BIM = self.tizhong/pow(self.shenggao,2)
        if BIM > 25 and BIM < 28:
            print("【%s】处于正常区间范围内,请保持!" % self.name)
        elif BIM > 28:
            print("【%s】处于肥胖区间范围内,请改善!" % self.name)
        else:
            print("【%s】处于偏瘦区间范围内,请改善!" % self.name)
# while True:
#     name = input("请输入要测试人的姓名:")
#     shenggao = eval(input("请输入要测试人的身高(单位:m):").strip("m"))
#     tizhong = eval(input(("请输入要测试人的体重(单位:kg):").strip("kg")))
#
#     a = Person(name, shenggao, tizhong)
#     a.check_health()
Person.n = 3#类属性它通过类名调用
Person.lian = "smile"  # 类属性可以通过类名在外部定义,可以通过类名调用
person1 = Person("shen",1.7,50)  # 也可以通过实例对象进行调用
print(person1.lian)  # 实例对象调用类属性而打印。
print(Person.n)  # 类名调用自己的类属性

print(Person.name) #类名不能调用实例属性

谢谢浏览!!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值