美文网首页
python3【对象】 探究类变量和对象变量

python3【对象】 探究类变量和对象变量

作者: 王上山 | 来源:发表于2018-03-13 10:31 被阅读0次
#coding=utf-8
#探究类变量和对象变量
class Robot:
    '''表示一个带有名字的机器人'''
    #一个类变量,用来技术机器人的数量
    population=0
    def __init__(self,name):
        '''初始化数据'''
        self.name=name
        print ("(Initializing {})".format(self.name))
        #当有人被创建时,机器人将会增加人口数量
        Robot.population+=1
    def die(self):
        '''我挂了'''
        print ('{} is being destroyed!'.format(self.name))
        Robot.population-=1
        if Robot.population == 0:
            print ('{} was the last one'.format(self.name))
        else:
            print ('there are still {:d} robots working'.format(Robot.population))
    def say_hi(self):
        '''来自机器人的诚挚问候
没问题,你做得到'''
        print ('Greetings,my master call me {}'.format(self.name))
    @classmethod
    def how_many(cls):
        '''打印出当前人口数量'''
        print('we have {:d} robots.'.format(cls.population)) #十进制整数
droid1=Robot("R2-D2")
droid1.say_hi()
Robot.how_many()
print('--------')
droid2=Robot('C-3P0')
droid2.say_hi()
Robot.how_many()
print('--------')
print ('\nRobots can do somework here.\n')
print ("Robots have finished their work.So let's  destroy them.")
droid1.die()
droid2.die()
Robot.how_many()

下面我们来探究一下类变量和对象变量是如何在本例中使用的:
在本例中 population 属于 Robot 类,因此它是一个类变量。name 变量属于一个对象(通过self 分配),因此它是一个对象变量
因此,我们通过Robot.population 而非self.population 引用 popuation 类变量。我们对于 name对象变量采用 self.name 标记法加以称呼,这是这个对象中所具有的方法,要记住这个类变量与对象变量之间的简单区别。同时你还要注意 当一个对象变量与一个类变量名称相同时,类变量将会被隐藏 [对象变量优先级高]

相关文章

  • python3【对象】 探究类变量和对象变量

    下面我们来探究一下类变量和对象变量是如何在本例中使用的:在本例中 population 属于 Robot 类,因此...

  • 006-面向对象,继承,方法重写,访问修饰符详解,final,多

    面向对象 对象 类 类和对象的关系 如何创建类 Student类 如何创建对象 测试类 成员变量和局部变量 测试 ...

  • Runtime

    objc对象内存布局 对象:所有父类的成员变量和自己的成员变量类对象:其中存放着普通成员变量列表与动态方法(“-”...

  • 类和对象

    创建一个类 创建对象 new 类名();就是实例化,然后创建一个类的对象。对象.变量就是赋值。 局部变量和成员变量...

  • 静态变量和成员变量的区别

    A:所属不同 静态变量:属于类,类变量 成员变量:属于对象,对象变量,实例变量 B:内存位置不同 静态变量:方法区...

  • Dart --类

    类概述 普通类变量实例变量(创建对象后,使用 对象.变量名 调用)静态变量(用static修饰,使用 类...

  • 单下划线和双下滑线

    有三种情况 : _x :私有变量(保护变量),只有类对象和子类对象能够访问这些变量(但是避免类外面使用) __x:...

  • 「Objective-C」类和方法

    1. 类方法和对象方法 对象方法 减号 - 开头 只能由对象来调用 对象方法中能访问当前对象的成员变量(实例变量)...

  • python类的一些相关操作

    创建类 创建对象(实例) 创建变量 删除变量 修改变量 查看变量 类变量只能被实例查看而不能修改和删除

  • Java没有全局变量

    成员变量(类中 属于对象的 只能对象调用 实例变量 堆内存)、 静态变量(类中前面加static 属于类...

网友评论

      本文标题:python3【对象】 探究类变量和对象变量

      本文链接:https://www.haomeiwen.com/subject/rfwafftx.html