python 类变量和实例变量

Crq
Crq
管理员
1921
文章
0
粉丝
Linux教程评论10字数 410阅读1分22秒阅读模式
摘要类变量是在类空间中命名的,就是不加self的变量。

python 类变量和实例变量

因此,程序不能直接访问这些变量,必须通过类名+类变量来访问, 不管是在全局范围内还是函数内访问这些类变量,都必须使用类名进行访问。

class Address:
    detail = "guangzhou"
    post_code = "510660"
    def info(self):
        #尝试直接访问类变量
        #print(detail) #报错
        #通过类类访问类变量
        print(Address.detail)
        print(Address.post_code)
#通过类来访问Address 类的类变量
print(Address.detail)
addr = Address()
addr.info()
#修改Address类的类变量
Address.detail = "fushan"
Address.post_code = "460110"
addr.info()

实际上, python完全允许使用实例(对象)来访问对象所属类的类变量(当然还是推荐使用类访问类变量)

class Record:
    #define two class variable
    item = "鼠标"
    date = "2016"
    def info(self):
        print("In info method : ", self.item)
        print("In info method: ",self.date)
rc = Record()
#也可以通过实例来访问类变量
print(rc.item)
print(rc.date)
rc.info()

实际上,程序通过对象访问类变量,其本质还是通过类名在访问类变量

由于通过对象访问类变量的本质还是类名在访问,因此如果类变量发生了改变,当程序访问这些类变量时也会读到修改之后的值

class Record:
    #define two class variable
    item = "鼠标"
    date = "2016"
    def info(self):
        print("In info method : ", self.item)
        print("In info method: ",self.date)
rc = Record()
#也可以通过实例来访问类变量
print(rc.item)
print(rc.date)
#由于通过对象访问类变量的本质还是类名在访问,因此如果类变量发生了改变,当程序访问这些类变量时也会读到修改之后的值
Record.item = "键盘"
Record.date = "2021"
rc.info()

weinxin
我的微信
微信号已复制
我的微信
这是我的微信扫一扫
 
Crq
  • 本文由 Crq 发表于2025年3月20日 03:40:38
  • 转载请注明:https://www.cncrq.com/13518.html
12个Linux进程管理命令介绍 Linux教程

12个Linux进程管理命令介绍

执行中的程序称作进程。当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源、内存、安全属性和与之相关的状态。可以有多个进程关联到同一个程序,并同时执行不会...
【技术快报】9.6-9.11 Linux教程

【技术快报】9.6-9.11

本期《linux就该这么学》的技术周报中,将为您推出Web服务精讲–搭个 Web 服务器(二)、WGNU KHATA——开源的会计管理软件、Linux新手应掌握的10个基本命令、R...
国内三大云数据库测试对比 Linux教程

国内三大云数据库测试对比

腾讯云数据库提供了可视化的运维操作页面和自动备份的能力,降低了数据库运维的门槛。同时云数据库还支持高可用架构,对数据的安全性和服务的可靠性更有保障。另外有的云数据库厂商还提供了诸如...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证