在 Python 方法中使用 self 作为临时变量有什么区别吗?

2023-11-24

有时我需要在方法定义中使用不在方法外部使用的临时变量。使用之间的行为有什么区别吗self.MyVariable and MyVariable在下面的类定义中?哪种方法更好?为什么?

示例1:self.MyVariable

class MyClass:
    def Hello(self, Name):
        self.MyVariable = "Hello " + Name
        return self.MyVariable

示例2:MyVariable

class MyClass:
    def Hello(self, Name):
        MyVariable = "Hello " + Name
        return MyVariable

第一个在类实例上创建持久引用,并将在方法范围之外的对象上可用。后者创建一个纯粹的本地引用,该引用在方法外部不可用。哪个更好取决于具体情况,但如果它实际上只是一个临时变量,请使用本地(非self) 多变的。

Case 1:

>>> foo = MyClass()
>>> foo.MyVariable
...
AttributeError: 'MyClass' object has no attribute 'MyVariable'
>>> foo.Hello('bar')
'Hello bar'
>>> foo.MyVariable
'Hello bar'

情况2同上,不同的是MyVariable调用后仍然不是对象的属性Hello.

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

在 Python 方法中使用 self 作为临时变量有什么区别吗? 的相关文章

  • 安装 Pillow 和 PIL

    I have Ubuntu 12 04 http en wikipedia org wiki List of Ubuntu releases Ubuntu 12 04 LTS 28Precise Pangolin 29 Precise Pa
  • Python 中的空填字游戏求解器

    我得到了一个包含填字游戏蓝图的矩阵 当然 它是空的 我们的目标是填补整个难题 这是 Checkio 的一项任务 我已经为此奋斗了相当长一段时间 根据我对复杂性的理解 这个问题没有完美的算法 不过 必须有最好的方法来做到这一点 对吧 我尝试了
  • Cassandra:在 session.execute() 期间“无法完成对任何主机的操作”

    卡桑德拉版本 1 2 2Thrift API 版本 19 35 0CQL支持的版本 2 0 0 3 0 1 默认 3 0 1 适用于 python 3 4 的 cassandra 驱动程序使用 sudo 运行 cassandra bin c
  • 将 Python 脚本导入另一个脚本?

    我正在阅读 Zed Shaw 的 艰难学习 Python 正在学习第 26 课 在本课中 我们必须修复一些代码 这些代码从另一个脚本调用函数 他说我们不必导入它们来通过测试 但我很好奇我们将如何做到这一点 课程链接 http learnpy
  • PHP Define() 似乎不能与 include() 一起使用

    我一直在尝试 OO PHP 目前拥有三个文件 我有一个 class lib php 目前它只有一个databaseServer 类 一个index php 文件和一个definitions php 文件 我想将所有敏感数据库信息放入定义文件
  • pythonic方式来反转一个字典,其中值是列表?

    我有一本看起来像这样的字典 letters by number 1 a b c d 2 b d 3 a c 4 a d 5 b c 我想将其反转为如下所示 numbers by letter a 1 3 4 b 1 2 5 c 1 3 5
  • Python 的贝叶斯垃圾邮件过滤库

    我正在寻找一个可以进行贝叶斯垃圾邮件过滤的 Python 库 我查看了 SpamBayes 和 OpenBayes 但两者似乎都没有维护 我可能是错的 谁能推荐一个好的 Python 或 Clojure Common Lisp 甚至 Rub
  • 查找提供的 Sum 值的组合

    我有一系列这样的数字 myvar 57 71 87 97 99 101 103 113 114 115 128 129 131 137 147 156 163 186 现在我想计算所有这些可能的组合 长度为1到20 其总和等于给定的数字m
  • 忽略 NaN 的列表理解

    我正在尝试构建一个列表理解 其条件是不导入 nan 值 但运气不佳 以下是当前代码以及结果输出 什么条件会将 nan 从列表中删除 def generate labels filtered df columnName return labe
  • lxml 属性需要完整的命名空间

    下面的代码使用 lxml python 3 3 从 Excel 2003 XML 工作簿中读取表格 该代码工作正常 但是为了通过 get 方法访问 Data 元素的 Type 属性 我需要使用键 urn schemas microsoft
  • rpy2 传递 python 保留关键字参数

    我试图通过 python 使用 r 的密度函数 并且必须将 from to 参数传递给密度函数 然而 由于 from 这个词是Python中的保留关键字 我该如何实现这一点呢 谢谢 这是到目前为止的代码 r density robjects
  • 访问具有动态名称的变量的值

    我发现了几个主题 其中讨论了在循环中动态创建单个变量是不好的做法 最好使用字典 就我而言 我不需要动态创建它们 我想要access他们在循环中 我不想用字典对于他们来说 因为这些变量在代码中的很多地方使用 并且只有一个地方我需要这种动态访问
  • 使用 Python 访问 MP3 音乐数据

    我正在尝试编写一个 Python 脚本 用于使用歌曲的数据作为比较的基础来搜索重复的 mp3 4 文件 我的情况涉及许多文件名相似但 ID3 标签不同的 mp3 4 文件 起初 我尝试循环并使用 md5 来查找重复文件 忽略文件名 当然 当
  • 在 python 中以半小时为增量创建选择列表

    我正在尝试创建一个
  • 包含文件中的块未被扩展模板填充

    我有一个如下所示的模板 include base top html with context include base nav html with context div Stuff block content endblock div i
  • 在 C++ 中运行 python [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个用 C 编写的应用程序和一个测试系统 也是用 C 编写的 测试系统非常复杂并且很难改变 我只想做一些小的改变 我的班级是这样的
  • 无法使用 pandas 获取平均日期

    我有一个时间序列数据集 我想从中获取平均日期 这是一个人为的示例 显示 pandas datetime64 对象的溢出错误 import pandas as pd import numpy as np rng pd date range 2
  • 带过滤器的 SQLAlchemy func.count

    我正在使用一个进行分页的框架 如下所示 def get count query self return self session query func count select from self model def paginate se
  • AttributeError:“列表”对象没有属性“文本”,在 DOM 中查找元素时出错

    我尝试在树 DOM 中查找元素 但遇到问题 我写 age browser find elements by xpath div id ads ul li 6 span 2 text 但它一直显示我的错误 属性错误 列表 对象没有属性 文本
  • 阅读 setup.py 中的 README

    所以 我想要long description我的设置脚本的内容是我的README md文件 但是当我这样做时 源代码发行版的安装将失败 因为python setup py sdist不复制自述文件 有没有办法让distutils core

随机推荐

  • 将 json 提交到 MVC3 操作

    我有一个用 Knockout js 创建的表单 当用户按下提交按钮时 我将视图模型转换回模型并尝试提交到服务器 我试过 ko utils postJson location href ko toJSON viewModel 但该对象在到达服
  • 如何在 MySQL 上正确循环存储函数?

    我在正确执行一个非常简单的存储过程时遇到了一些困难 考虑以下文章表片段 id replaced by baseID 1 2 0 2 3 0 3 0 0 一个简单的分层表 使用写时复制 编辑文章时 当前文章的 Replaced by 字段将设
  • 为 Rest 客户端设置 Json 内容类型

    我正在使用用于 Android 的 Loopj 的 AsyncHttpClient 以便我可以与我创建的安静的 Web 应用程序进行交互 我已经使用 Postman 测试了 POST 请求 效果很好 然而 在 Android 中 我很难执行
  • 为什么我的 HashMap 允许重复键?

    嘿 我正在使用HashMap在公告板上跟踪服务和服务请求 但是 我的哈希码和等于错误 因为我得到了重复的键 谁能告诉我为什么会这样吗 keySet的内容 Services 1 1 6 6 3 Requests 8 7 6 5 8 4 5 6
  • 如何重置 CURLOPT_CUSTOMREQUEST

    我正在使用 REST API 除其他外 它使用DELETE像这样的方法 DELETE resources whatever items 123 为了使用 PHP 访问它 我使用 cURL 如下所示 self curl curl init c
  • Hashmap put(),它总是有序的吗?

    当我们将值添加到hashmap
  • 为什么 LINQ JOIN 比 WHERE 链接快得多?

    我最近升级到 VS 2010 并正在使用 LINQ to Dataset 我有一个用于授权的强类型数据集 位于 ASP NET Web 应用程序的 HttpCache 中 所以我想知道检查用户是否有权执行某些操作的最快方法是什么 Here是
  • 列表框“IsSelected”绑定仅部分工作

    我有一个ListBox我通过绑定动态填充 这是在DataTemplate 这就是绑定有些不寻常的原因
  • numpy 数组 C API

    我有一个返回 std vector 的 C 函数 我想在 python 中使用它 所以我使用 C numpy api static PyObject py integrate PyObject self PyObject args std
  • SAS proc导出到CSV:如何添加双引号

    刚接触这个 所以很抱歉 我有一个 SAS 文件 需要将其导出为 CSV 并且需要向所有字段添加双引号 我怎样才能做到这一点 提前致谢 从 SAS 创建 CSV 文件的方法有多种 使用proc export不会将每个字段都用双引号括起来 因此
  • 如何在 ruby​​ 中从外部访问类变量?

    我正在尝试从类外部的方法访问类变量 这是我的课 class Book bookCount 0 allBooks def self allBooks allBooks end def self bookCount bookCount end
  • 如何休眠线程直到收到异步函数的回调?

    我有一个函数 仅当从异步函数接收到回调时才需要执行 Like 我调用异步函数Stop 不久之后我调用异步函数Start 收到 Stop CallBack 之前的问题Start 被调用 因此我遇到了问题 我也无法分开调用两个函数 就像我不能这
  • 学习 HTML 语义的最佳网站是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我应该在哪里指导别人学习 HTML CSS 基础知识 我个人是从HTML 好东西回到过去 虽然我感谢肯 伯恩斯让我继续前进 但我现在不愿意派人去那个网站 因为我认为它已经过时了 显然 有很
  • Emacs 在 python 模式下禁用自动完成

    我正在使用 Emacs 24 并且想在 python 模式下禁用自动完成模式 这样它就不会与 jedi 冲突 我该如何去做这个 遗憾的是我不知道 Emacs Lisp 以下是我当前在 init el 中有关自动完成的设置 auto comp
  • jsp中的数字格式

    如何格式化 int 值123456789 as 123 456 789 使用 JSTL fmt formatNumber http download oracle com docs cd E17802 01 products product
  • ColdFusion 的 DecimalFormat() 函数中这是怎么回事?我怎样才能得到正确的结果?

  • d3 将 csv 文件导入数组[重复]

    这个问题在这里已经有答案了 我正在尝试使用 d3 csv 方法导入 csv 文件 这是我的代码 d3 csv data csv function data console log data 我认为我会得到一个包含对象的数组 每个对象代表 c
  • Java中String的内存使用

    我有一个 Java 对象 其中包含一个字符串 我很好奇字符串的内存使用情况是如何工作的 我正在尝试优化程序的内存使用情况 应用程序将有大约 10000 个这样的对象 对于诸如 Hello World 之类的字符串 内存使用量是多少 Java
  • 如何在word中使用VBA(宏)使用/启用(RegExp对象)正则表达式

    我做了很多谷歌搜索以获得关于如何在 VBA 中使用或开始使用正则表达式的正确答案 终于明白了 所以我想和大家分享我的知识 如果我错了 请纠正我 默认情况下 Word 2007 中禁用正则表达式选项 要启用该选项 请执行以下步骤 1 Go t
  • 在 Python 方法中使用 self 作为临时变量有什么区别吗?

    有时我需要在方法定义中使用不在方法外部使用的临时变量 使用之间的行为有什么区别吗self MyVariable and MyVariable在下面的类定义中 哪种方法更好 为什么 示例1 self MyVariable class MyCl