为什么 Class 变量没有更新其所有实例?

2023-12-01

我正在学习课程,但不明白这一点:

class MyClass:
    var = 1

one = MyClass()
two = MyClass()

print(one.var, two.var) # out: 1 1
one.var = 2

print(one.var, two.var) # out: 2 1

我认为类变量可以被所有实例访问,为什么类变量不更新其所有实例?


对于所有人来说,它都不会改变,因为这样做:one.var = 2,创建一个新的实例变量 与类变量同名,但仅适用于实例one。 在那之后,one首先会找到它的实例变量并返回它,而two只会找到类变量并返回它。

要更改类变量,我建议两个选项:

  1. 创建一个类方法来更改类变量(我的偏好)

  2. 直接使用类来改变它

class MyClass:
    var = 1

    @classmethod
    def change_var(cls, var): 
        cls.var = var


one = MyClass()
two = MyClass()

print(one.var, two.var) # out: 1 1

one.change_var(2)  # option 1
print(one.var, two.var) # out: 2 2

MyClass.var = 3     # option 2
print(one.var, two.var) # out: 3 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Class 变量没有更新其所有实例? 的相关文章

  • 打乱列表并返回副本

    我想对数组进行洗牌 但我找到的只是类似的方法random shuffle x from 在 Python 中随机化字符串列表的最佳方法 https stackoverflow com questions 1022141 best way t
  • 如何获取Python对象父级?

    所以 我试图获取自定义对象 内部 的对象 这是一个例子 假设 o 是一个对象 无论是什么类型 它都可以存储变量 o Object class Test def init self self parent o This is where I
  • 分类报告 - 精度和 F 分数定义不明确

    我从 sklearn metrics 导入了classification report 当我输入我的np arrays作为参数我收到以下错误 usr local lib python3 6 dist packages sklearn met
  • 需要Python字长函数示例

    我的家庭作业有点困难 我本来应该编写一个函数 limitWords 将输入限制为 20 个单词 如果输入超过 20 个单词 则将输入截断为仅 20 个单词 我使用 len text split 作为计算单词的方法 因此 20 个或更少的部分
  • Python Twisted 与 Cmd 模块集成

    我喜欢Python的Twisted http twistedmatrix com and Cmd http docs python org library cmd html 我想一起使用它们 我已经完成了一些工作 但到目前为止我还没有弄清楚
  • 增加 sigmoid 预测输出值?

    我创建了一个用于文本分类的 Conv1D 模型 当在最后一个密集处使用 softmax sigmoid 时 它产生的结果为 softmax gt 0 98502016 0 0149798 sigmoid gt 0 03902826 0 00
  • 获取每行最后 150 行中所有正值的计数 - pandas

    我有以下数据集 其中有列Date and Values对于每一行 它两者都有 ve and ve价值观 我必须计算最后 150 行的所有正值 在每一行 因此前 150 行将具有空值 然后 以下行将具有最后 150 行的计数 ve行 类似地
  • Python 中 Matlab 'fscanf' 的等价物是什么?

    Matlab函数fscanf 似乎很强大 python 或numpy 中是否有相同的等效项 具体来说 我想从文件中读取矩阵 但我不想迭代每一行来读取矩阵 类似的东西 来自 matlab 用于读取 2D 1000x1000 矩阵 matrix
  • 字段“id”期望一个数字,但得到“natsu”django

    我想创建一个 user posts 视图 其中包含与特定用户相关的所有帖子 假设有用户 Natsu 撰写的博客帖子 那么登录用户 Testuser 将能够查看所有帖子由该用户发布 即用户 Natsu 的所有帖子 blog models py
  • 谷歌colab录音,如何实现更精确的方式告诉用户开始对着麦克风说话

    我正在尝试创建一个为机器学习项目录制音频的程序 我想使用 google colab 这样人们就不必在他们的系统上安装或运行任何东西 我在网上找到了这个录制和播放音频的示例 单元格 1 包含用于录制音频的 js 代码和用于将其转换为字节对象的
  • Python列表错误还是我错了?

    我构建了一个 3 级嵌套列表 run on Python 3 2 3 32 bit on Win 7 L2 list 0 for i in range 2 L3 list L2 for i in range 3 L4 list L3 for
  • 获取SVG绘图的边界框

    我想提取 SVG 绘图的边界框 由于 Python 已经在系统上可用并且还用于执行其他任务 因此我不想使用 JavaScript 或任何其他语言 我的理解是是否可以计算单个元素的边界框 但我不知道如何计算 整个绘图的边界框只是所有元素的最小
  • Django Rest框架Json解析

    我想解析传入的POSTdjangoviews py 文件中的数据 发布数据 number 17386372 data banana apple grapes 这是我尝试读取上述传入数据的方法request views py class Fr
  • 如何重写一个列表列表,使值的“孤岛”彼此唯一?

    假设我有一个列表列表 或更概念上准确的二维数组 list 1 1 0 0 0 1 1 2 0 0 0 2 2 2 0 0 0 0 2 0 0 0 0 1 0 我想识别具有相同值的不同区域并重写列表 以便每个区域都有唯一的值 如下所示 lis
  • 禁用或限制 /o/applications(django rest 框架、oauth2)

    我目前正在使用 Django Rest 框架编写 REST API 并使用 oauth2 进行身份验证 使用 django oauth toolkit 我对他们俩都很满意 他们做的正是我想要的 然而 我有一个担忧 我正在将我的应用程序传递到
  • Django Admin Media 前缀 URL 问题

    我有以下文件夹结构 src BAT templates admin base html src BAT media base css src BAT media admin media base css 设置 py MEDIA ROOT o
  • 具有默认参数的Python类构造函数[重复]

    这个问题在这里已经有答案了 可能的重复 Python 中的 最不令人惊讶 可变默认参数 https stackoverflow com questions 1132941 least astonishment in python the m
  • 仅将唯一行插入 SQLite (python)

    我在用着cursor executemany将 CSV 文件中的批量行插入到 SQLite 表中 根据主键字段 其中一些行预计会重复 当我执行该命令时 可以预见的是 我会收到完整性错误 并且不会插入任何内容 如何有选择地仅插入非重复行 而无
  • 如何在我的 heroku 应用程序上安装软件包?

    我有一个使用 Shortuuid 的应用程序 https pypi python org pypi shortuuid 0 1 https pypi python org pypi shortuuid 0 1 当我使用 runapp py
  • 与仅调用依赖函数/类相比,在 FastAPI 中使用 Depends 有哪些优点?

    FastAPI 提供了way https fastapi tiangolo com tutorial dependencies 通过其自己的依赖关系解析机制来管理依赖关系 例如数据库连接 它类似于一个pytest夹具系统 简而言之 您在函数

随机推荐

  • Unix Sockets 的缓冲特性

    有谁知道 Unix 套接字在发送小块数据 几个字节 时的缓冲特性 当我使用 TCP 套接字时 我可以禁用 Nagle 算法以防止数据传输中的延迟 但 Unix 域套接字没有 据我所知 等效的功能 unix 域套接字上没有可用的 nagle
  • 如何实现固定步长循环?

    我试图在我的程序中创建一个固定的步骤循环 但由于某种原因我似乎无法让它正常工作 基本上我需要的是一个循环 while over Update elapsedtime Draw elapsedtime 或类似的东西 带有 我尝试过使用 Thr
  • 控制对未来内容的访问

    这主要是关于未来的公共内容 但不仅如此 在标准 Plone 站点中 如果您创建的顶级内容未显示在导航上 仍然是私有的 那么您将其公开 通过工作流程 并显示在导航上 但稍后您会在将来计时它再次从导航中消失 不过 此时 如果匿名 登录用户知道
  • 如何制作单个可执行文件 VS 2010

    我正在使用 C 和 DirectX 制作游戏 如果能够通过提供单个可执行文件而不是运行安装向导来与其他人分享我的小组进度 那就太好了 我已经检查了我的发布和调试文件夹 但这些可执行文件不起作用 发布的 exe 大小约为 21KB 这似乎不正
  • devtools/GitHub 下载错误

    截至今天我无法使用devtools从 GitHub 安装包 不知道错误是否在于 Me 开发工具 GitHub 我在用着install github如下并得到以下错误 library devtools install github repor
  • 如何使用 WebDav 将 dav:href 与 Outolook Interop href 值匹配

    我以前曾使用 webdav 根据主题和时间访问 Exchange 2003 服务器上发送的消息 这很有效 我现在需要实现另一个功能 这意味着将消息从客户端 Outlook 不是 Web 访问 拖到 Windows 窗体上 然后在 Excha
  • 使用广播接收器更改日期时无法运行服务

    我创建了一个生日提醒应用程序 我想在晚上 12 00 开始服务来扫描数据库中人员的生日 我添加了一个广播接收器
  • iPad/iPhone 悬停问题导致用户双击链接

    我有一些我以前建立的网站 使用 jquery 鼠标事件 我刚买了一个 ipad 我注意到所有鼠标悬停事件都被转换为单击 所以例如我必须执行两次单击而不是一次单击 第一次悬停 而不是实际点击 有解决方法可以解决这个问题吗 也许我应该使用 jq
  • 为什么 OS X 上的 FF 在单击事件处理程序中丢失了 jQuery-UI?

    在使用 jQUery 1 7 1 和 jQUery UI 1 8 18 的网页中 如果我在文档准备好时在警报框中输出 ui 我会得到 object Object 但是 当使用 Firefox 时 如果我在单击事件处理程序中输出 ui 则会得
  • 重用 UITableView 中的单元格

    我有我的自定义单元 NewsCell 它包含我的自定义视图 ImageMosaicView 它只是 UIView 的子类 我用它来显示照片 就像 Facebook 上发布的照片 一样 我只是将图像的 url 传递给 ImageMosaicV
  • C++成员函数隐藏的原因[重复]

    这个问题在这里已经有答案了 可能的重复 名称隐藏和脆弱的基础问题 我熟悉涉及成员函数隐藏的规则 基本上 具有与基类函数同名的函数的派生类实际上不会重载基类函数 它完全隐藏了它 struct Base void foo int x const
  • 我如何用 throw e 在开玩笑行中进行测试?

    如何在玩笑错误情况下进行测试 这就是我所做的 我不知道是否存在一种方法来测试这个 it the fetch fails and throw an error async gt let response status 400 body bas
  • Javascript API 不适用于 JW Player 5.9 上的 Chrome 或 Safari

    我正在为 JW Player 开发一个自定义界面 它显示当前曲目标题并具有播放 暂停 下一曲目 上一曲目和音量切换按钮 它适用于 IE8 9 和 FF 但不适用于 Chrome 和 Safari Chrome 的控制台出现以下错误 未捕获的
  • 将输出写入不同的文件夹 hadoop

    我想将同一个减速器的两种不同类型的输出写入两个不同的目录 我可以使用 hadoop 中的多输出功能写入不同的文件 但它们都转到相同的输出文件夹 我想将同一个reduce 中的每个文件写入不同的文件夹 有办法做到这一点吗 如果我尝试将 hel
  • 为什么方法 Base64.encodeBase64String(byte) 不可用

    您好 我已将官方网页中的 apache commons codec 1 7 jar 添加到我的项目构建路径中 但该方法Base64 encodeBase64String byte当我编写代码时不可用 我已经用旧版本的 jar 1 5 1 6
  • 动态加载 php 扩展而不使用 dl() 函数?

    这可能吗 如果可能的话 该怎么做 我问是因为dl 我无法使用该函数 因为 PHP 团队正在从后续版本中放弃该函数 请不要回答 改用扩展加载指令 这正是我不明白的部分 我想 我要问 The 函数已从所有 SAPI 中删除other自 PHP
  • php 命令行性能缓慢 - 这是正常现象还是我有安装问题?

    我有一个简单的 PHP 应用程序 可以打印 hello world 当我从命令行运行它时 需要 6 秒 这是正常的吗 似乎需要 1 秒才能打印 hello world 然后又需要 5 秒 我在 Windows Server 2008 R2
  • 链接升压日志教程时出现链接器错误(未定义的引用)

    我已经通过 yum 在 Fedora 20 上安装了 boost 并且正在尝试一些简单的示例 但是我在编译第一个示例时遇到了麻烦日志记录教程 编译用g c boosttest cc工作正常 但是当我尝试将其链接到时出现很多错误 g boos
  • 在 HQL 上使用 select 进行内连接

    我想用 HQL 做类似的事情 SELECT FROM tableA a INNER JOIN select fieldA sum fieldB as sum from tableB b ON a fieldA b fieldA and a
  • 为什么 Class 变量没有更新其所有实例?

    我正在学习课程 但不明白这一点 class MyClass var 1 one MyClass two MyClass print one var two var out 1 1 one var 2 print one var two va