Python - 为什么在类中使用“self”?

2023-12-14

这两个类有何不同?

class A():
    x=3

class B():
    def __init__(self):
        self.x=3

有什么显着差异吗?


A.x is a 类变量. B's self.x is an 实例变量.

i.e. A's x在实例之间共享。

通过像列表这样可以修改的东西来展示差异会更容易:

#!/usr/bin/env python

class A:
    x = []
    def add(self):
        self.x.append(1)

class B:
    def __init__(self):
        self.x = []
    def add(self):
        self.x.append(1)

x = A()
y = A()
x.add()
y.add()
print("A's x:", x.x)

x = B()
y = B()
x.add()
y.add()
print("B's x:", x.x)

Output

A's x: [1, 1]
B's x: [1]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - 为什么在类中使用“self”? 的相关文章

随机推荐

  • “编译 PDF”和 knit2pdf 之间的区别

    我有一个 Rnw 文件 可以使用 RStudio 中的 编译 PDF 按钮 或 Command Shift k 将其编译为 PDF 但是 当我使用 knit2pdf 时 不会创建图形 也不会创建完整的 PDF 为什么会出现这种情况呢 如何具
  • 登录脚本未按要求工作

    我是 php 新手 尝试开发登录脚本 但是当我输入值时它不起作用 我什至找不到错误 因为当我单击 提交 时 它只会刷新页面 这是我的代码
  • EJB - 性能问题(更多数量的 EJB 对性能有影响)

    我们正在开发一个包含大约 400 个数据库表的应用程序 并具有相同数量的 EJB 全部都是本地接口 EJB 是无状态的 并且一个 EJB 通过 EJB 标记注入到另一个 EJB 中 我的疑问是 拥有更多数量的 EJB 是否会对应用程序的性能
  • Spring 中的内容类型问题

    我收到的帖子有问题 我有以下端点 RequestMapping value payment method POST public void saveOrder RequestBody PaymentDto paymentDto throws
  • 如何以编程方式找出哪个用户拥有哪个进程?

    好的 所以我想做的是找出给定进程所属的用户名 Process processList Process GetProcesses foreach Process p in processList Console WriteLine p Id
  • 高效的模 3 运算? [复制]

    这个问题在这里已经有答案了 可能的重复 快速模 3 或除法算法 每个人都知道模运算可能会对性能产生巨大的影响 有谁知道 x 3 操作的一个好的替代方案吗 我知道存在一个用于 x 2 的缓冲区 但我确实需要一个用于模 3 的缓冲区 因为我想在
  • 查找(解析)树集合中最频繁的子树

    我有一个树的集合 其节点被标记 但不是唯一的 具体来说 这些树来自解析句子的集合 参见http en wikipedia org wiki Treebank 我希望从集合中提取最常见的子树 性能 还 不是问题 如果有算法 最好是 Java
  • 将 List 从最高到最低排序

    List
  • 为所有网格设置 xticklabels,用于使用 col_wrap [重复] 使用seaborn catplot 创建的绘图

    这个问题在这里已经有答案了 我使用以下方法创建了一个绘图 g sns catplot x loja y preco col Descr Grupo col wrap 3 capsize 2 height 4 aspect 1 2 kind
  • Apache 基准多部分/表单数据

    我在 apache benchmark post 文件中遇到了一个奇怪的问题 我需要强调一个处理文件上传的功能 因此 我用谷歌搜索 找到了一篇描述如何正确构建帖子文件的帖子 其内容如下所示 1234567 Content Dispositi
  • jQuery ajax 循环和迭代范围

    我想知道为什么在下面的代码中i多变的仍然显示 5 而不是显示 1 then 2 then 3 等等 一定是范围问题 但我并没有真正理解它 因为我在全局和 dom 范围中更改了 i 变量的范围 但仍然遇到相同的问题 当我警觉时i在ajax函数
  • 底层连接已关闭:无法建立 SSL/TLS 安全通道的信任关系

    我正在使用 C 和 xaml 开发 Metro 风格应用程序 在我的应用程序中 调用 Web 服务时出现错误 底层连接已关闭 无法建立 SSL TLS 安全通道的信任关系 出现这个错误的原因是什么 我有一个爬虫程序 不久前我遇到了同样的异常
  • 带有视图动态获取行/列的GridLayout

    我刚刚关注了这个tutorial 创建自定义View作为一个项目GridLayout 那是我的CustomView public class RowView extends View boolean touchOn boolean mDow
  • 在循环中访问编号变量

    我无法在 Matlab 文档或留言板上找到以下问题的答案 有很多关于动态变量名称的使用以及如何避免使用eval创建变量时的函数 然而 我的查询涉及访问循环内预先存在的已编号变量 假设有人向我发送了一张包含各种字段值的表 其中一些已编号 如下
  • moc-ed 文件被排除在 Visual Studio 2010 的构建之外

    我有一个 VS2010 解决方案 其中包含几个基于 Qt 的项目 每次当我修改某个项目的文件时 生成的文件 moc cpp 文件 都会更改其属性以从构建中排除 检查了所有可用的属性 但找不到与该问题相关的任何内容 但没有尝试从头开始重新创建
  • 等待 async void 方法

    我怎样才能等待async void方法来完成它的工作 例如 我有一个如下所示的函数 async void LoadBlahBlah await blah 现在我想确保在继续其他地方之前所有内容都已加载 最佳实践是标记功能async void
  • 使用 C 库导入 Swift 模块

    我按照以下说明编写了 Curses 包装器模块这一页 但是 我不知道如何使其在使用它的模块中正确工作 我有 3 个并行目录 Curses Curses Wrapper ModuleUsingCurses Wrapper CCurses 包含
  • POST 到服务器,接收 PDF,使用 jQuery 交付给用户

    我有一个链接 用户单击该链接即可获取 PDF 在 jQuery 中 我创建了一个对服务器的 POST ajax 调用来获取 PDF PDF 带有正确的内容标题等 通常会导致浏览器打开 Reader 插件 或允许用户保存 PDF 由于我通过
  • iOS 内存泄漏

    我运行了 Leaks 工具来测试我的应用程序是否有任何泄漏 它显示我有一些泄漏 我不是修复泄漏的专家 我想知道是否 我有泄漏 并且 我应该做什么来解决它 你看起来似乎有泄漏 但看起来并不严重 您可以单击内存地址旁边的小箭头 它应该会显示一个
  • Python - 为什么在类中使用“self”?

    这两个类有何不同 class A x 3 class B def init self self x 3 有什么显着差异吗 A x is a 类变量 B s self x is an 实例变量 i e A s x在实例之间共享 通过像列表这样