python类变量和实例变量详解,Python实例变量

  python类变量和实例变量详解,Python实例变量

  我们知道,在类中定义的属性和方法都不能在类外直接调用,所以我们完全可以把一个类看作一个独立的作用域(称为类命名空间),然后类属性实际上就是在类命名空间中定义的变量(类方法实际上就是在定义的类命名空间中的函数)。

  根据定义属性的位置不同,类属性可以细分为类属性(后来用类变量表示)和实例属性(后来用实例变量表示)。

  类变量(类属性)(推荐学习:Python视频教程)

  类变量是指定义在类中但在每个类的方法之外的变量。类的特点是类的所有实例化对象可以共享类变量的值,即类变量可以作为所有实例化对象中的公共资源。

  注意,建议通过类名直接访问类变量,但是也可以通过对象名访问类变量。

  例如,下面的代码定义了一个地址类,并为该类定义了几个类属性:

  班级地址:

  Detail=广州

  post_code=510660

  定义信息(自身):

  #尝试直接访问类变量

  #打印(详细)#错误报告

  #通过类访问类变量

  打印(Address.detail) #输出到广州

  print(address . post _ code)# output 510660

  #创建2个类对象

  addr1=地址()

  addr1.info()

  addr2=地址()

  addr2.info()

  #修改地址类的类变量

  Address.detail=佛山

  Address.post_code=460110

  addr1.info()

  Addr2.info()在这个程序中,第二行和第三行代码为Address定义了两个类变量。当程序第一次调用Address对象的info()方法输出两个类变量时,会输出这两个类变量的初始值。接下来程序通过Address类修改两个类变量的值,所以当程序第二次通过info()方法输出两个类变量时,就会输出这两个类变量的修改值。

  运行上述代码,您将看到以下输出:

  广州。亦称C

  510660

  广州。亦称C

  510660

  佛山

  460110

  佛山

  40110从输出结果可以看出,addr1和addr2共享类变量。换句话说,改变类变量的值将作用于这个类的所有实例化对象。

  实例变量指的是定义在类的方法中的属性,它的特点是:只作用于调用方法的对象。

  注意,实例变量只能通过对象名访问,而不能直接通过类名访问。

  Python允许通过对象访问类变量,但不能通过对象修改类变量的值。因为,通过对象修改类变量的值,不是给类变量赋值,而是定义一个新的实例变量。

  例如如下程序:

  类别清单:

  #定义两个类变量

  Item= mouse

  数量=2000

  #定义实例方法

  定义更改(自身、项目、数量):

  #下面的赋值语句没有给类变量赋值,而是定义了新的实例变量。

  self.item=项目

  self.quantity=数量

  #创建库存对象

  iv=库存()

  四.改变(“显示”,500)

  #访问iv的项目和数量实例变量

  打印(iv.item) #显示

  印刷(四.数量)# 500

  #访问库存的项目和数量分类变量

  Print(Inventory.item) #鼠标

  Print(Inventory.quantity) # 2000在上面的程序中,第8行和第9行通过示例为item和quantity变量赋值。看起来像是给类变量赋值,其实不是。它们的功能是重新定义两个实例变量。

  类,实例变量和类变量可以同名,但在这种情况下,类变量不能用类对象调用,因为它会偏向实例变量,这也是不建议用对象名调用类变量的原因。

  上面,在调用Inventory对象的change()方法后,程序访问Inventory对象的item和quantity变量。因为对象本身就有这两个实例变量,所以程序会输出对象的实例变量的值;接下来,程序通过Inventory访问它的两个类变量item和quantity,这是对类变量的真正访问。

  运行上面程序,将看到如下输出结果:

  班长

  500

  老鼠

  2000多是python类变量和实例变量的详细内容。其他相关文章请多关注盛行的IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: