通过函数更改字符串值[重复]

2024-04-21

我注意到我的代码有很多这样的语句:

var = "some_string"
var = some_func(var)
var = another_func(var)
print(var)  # outputs "modified_string"

这真的让我很恼火,它看起来很糟糕(与整个Python相反)。 如何避免使用它并开始以如下方式使用它:

var = "some_string"
modify(var, some_func)
modify(var, another_func)
print(var) # outputs "modified_string"

这可能不是最“Pythonic”的事情,但你可以"wrap"你的字符串在列表中,因为列表arePython 中是可变的。 例如:

var = "string"
var_wrapper = [var]

现在您可以将该列表传递给函数并访问其唯一的元素。更改后,它将在函数外部可见:

def change_str(lst):
    lst[0] = lst[0] + " changed!"

你会得到:

>>> change_str(var_wrapper)
>>> var_wrapper[0]
"string changed!"

为了使内容更具可读性,您可以更进一步并创建一个“包装” class:

class my_str:
    def __init__(self, my_string):
        self._str = my_string

    def change_str(self, new_str):
        self._str = new_str

    def __repr__(self):
        return self._str

现在让我们运行相同的示例:

>>> var = my_str("string")
>>> var
string
>>> var.change_str("new string!")
>>> var
new string!

* Thanks for @Error-SyntacticalRemorse https://stackoverflow.com/users/8150685/error-syntactical-remorse for the remark of making a class.

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

通过函数更改字符串值[重复] 的相关文章

  • OpenCV 错误:使用 COLOR_BGR2GRAY 函数时断言失败

    我在使用 opencv 时遇到了一个奇怪的问题 我在 jupyter 笔记本中工作时没有任何问题 但在尝试运行此 Sublime 时却出现问题 错误是 OpenCV错误 cvtColor中断言失败 深度 CV 8U 深度 CV 16U 深度
  • 如何 json_normalize() df 中的特定字段并保留其他列? [复制]

    这个问题在这里已经有答案了 这是我的简单示例 我的实际数据集中的 json 字段非常嵌套 因此我一次解压一层 我需要在 json normalize 之后保留数据集上的某些列 https pandas pydata org docs ref
  • 为什么方法无法访问类变量?

    我试图理解Python中的变量作用域 除了我不明白为什么类变量不能从其方法访问的部分之外 大多数事情对我来说都很清楚 在下面的例子中mydef1 无法访问a 但如果a可以在全局范围 类定义之外 声明 class MyClass1 a 25
  • 基于 True/False 值的 Python 优雅赋值

    我想根据三个布尔值中的值设置一个变量 最直接的方法是 if 语句后跟一系列 elif if a and b and c name first elif a and b and not c name second elif a and not
  • 在python中调用subprocess.Popen时“系统找不到指定的文件”

    我正在尝试使用svnmerge py合并一些文件 它在底层使用 python 当我使用它时 我收到一个错误 系统找不到指定的文件 工作中的同事正在运行相同版本的svnmerge py 以及 python 2 5 2 特别是 r252 609
  • 在 Windows 上将 Word2vec 与 Tensorflow 结合使用

    In 本教程文件 https github com tensorflow models blob master tutorials embedding word2vec py L45通过 Tensorflow 找到以下行 第 45 行 来加
  • 别碰我的女人

    我讨厌的一件事迪斯图尔斯 http docs python org distutils 我猜他是邪恶的人 他这样做了 https github com python cpython blob 300dd552b15825abfe0e367a
  • 从 python 中的缩进文本文件创建树/深度嵌套字典

    基本上 我想迭代一个文件并将每行的内容放入一个深层嵌套的字典中 其结构由每行开头的空格数量定义 本质上 目标是采取这样的事情 a b c d e 并将其变成这样的东西 a b c d e Or this apple colours red
  • 如何在python中递归复制目录并覆盖全部?

    我正在尝试复制 home myUser dir1 及其所有内容 及其内容等 home myuser dir2 在Python中 此外 我希望副本覆盖中的所有内容dir2 It looks like distutils dir util co
  • Python time.sleep - 永不醒来

    我认为这将是那些简单的问题之一 但它让我感到困惑 停止媒体 我是对的 找到了解决方案 查看答案 我正在使用 Python 的单元测试框架来测试多线程应用程序 很好而且很直接 我有 5 个左右的工作线程监视一个公共队列 以及一个为它们制作工作
  • 如何将reportlab与Google应用程序引擎一起使用

    我无法在谷歌应用程序引擎下正确导入reportlab 根据以下guide http blog notdot net 2010 04 Generating PDFs on App Engine Python and introducing M
  • 使用 pandas 绘制带有误差线的条形图

    我正在尝试从 DataFrame 生成条形图 如下所示 Pre Post Measure1 0 4 1 9 这些值是我从其他地方计算出来的中值 我还有它们的方差和标准差 以及标准误差 我想将结果绘制为具有适当误差线的条形图 但指定多个误差值
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • Scikit Learn - K-Means - 肘部 - 标准

    今天我想学习一些关于 K means 的知识 我已经了解该算法并且知道它是如何工作的 现在我正在寻找正确的 k 我发现肘部准则作为检测正确的 k 的方法 但我不明白如何将它与 scikit learn 一起使用 在 scikit learn
  • dask allocate() 或 apply() 中的变量列名

    我有适用于pandas 但我在将其转换为使用时遇到问题dask 有一个部分解决方案here https stackoverflow com questions 32363114 how do i change rows and column
  • python csv按列转换为字典

    是否可以将 csv 文件中的数据读取到字典中 使得列的第一行是键 同一列的其余行构成列表的值 例如 我有一个 csv 文件 strings numbers colors string1 1 blue string2 2 red string
  • Python列表对象属性“append”是只读的

    正如标题所说 在Python中 我试图做到这一点 以便当有人输入一个选择 在本例中为Choice13 时 它会从密码列表中删除旧密码并添加新密码 passwords mrjoebblock mrjoefblock mrjoegblock m
  • Python“self”关键字[重复]

    这个问题在这里已经有答案了 我是 Python 新手 通常使用 C 最近几天开始使用它 在类中 是否需要在对该类的数据成员和方法的任何调用前添加前缀 因此 如果我在该类中调用方法或从该类获取值 我需要使用self method or sel
  • Java 9 中紧凑字符串和压缩字符串的区别

    有什么优点紧凑的字符串 http openjdk java net jeps 254JDK9 中的压缩字符串 压缩字符串 Java 6 和紧凑字符串 Java 9 都有相同的动机 字符串通常实际上是 Latin 1 因此浪费了一半的空间 和
  • Python 中的迭代器 (iter()) 函数。 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 对于字典 我可以使用iter 用于迭代字典的键 y x 10 y 20 for val in iter y print val 当

随机推荐

  • 如何禁用 Silverlight DataGrid 验证页脚?

    我面临以下问题 我正在使用验证摘要弹出窗口来在页面上显示错误 并且我有一个可编辑的 DataGrid 所以有2个问题 1 如果 DataGrid 单元格中出现验证错误 则 DataGrid 验证会重复验证错误 例如 DataGrid 包含
  • 使用Rvest登录网站抓取时出现403错误

    我试图在需要登录的网站上抓取页面 但不断收到 403 错误 我已经修改了我网站的这两篇文章中的代码 使用rvest或httr登录网页上的非标准表单 https stackoverflow com questions 28418770 usi
  • 获取 Sublime Text 3 上的所有范围名称

    我正在创建一个插件ST3 http www sublimetext com 并需要所有定义范围的列表 我知道打ctrl alt shift p在状态栏中显示当前范围 但我无法对每个文件扩展名执行此操作 Edit 除了简单的 tmLangua
  • 使用反向路径的 CGContextClip()

    我想在我的作品上剪下图画CGContext但我需要它只是相反 即我想使用添加几个矩形到我的剪切路径CGContextAddRect 并且剪切应该以这样的方式完成 我添加到剪切路径的所有矩形都不受任何绘图操作的影响 通常情况下 情况正好相反
  • 处理 Flask url 创建中的空格

    在我正在开发的 Flask 应用程序中 我使用美国州名作为 url 结构的一部分 州名称是从 python 字典中提取的 该字典将州缩写与其各自的专有名称链接起来 例如 state dict Alabama AL Alaska AK 当状态
  • 使用 Binder 从 Native cpp 应用程序中捆绑 Intent

    我正在尝试从本机 cpp 代码调用意图 基本上 根据我的理解 我必须编写一个 Parcel 来匹配 Frameworks base core java android app ActivityManagerNative java 中的确切反
  • javascript中的指针和数组类[重复]

    这个问题在这里已经有答案了 有什么办法可以通过使用指针来缩短这段代码吗 我需要创建一个与给定数组类 unshift shift push 和 pop 具有基本相同功能但名称不同的类 var makeDeque function var a
  • ui-select 多重选择显示选项的速度非常慢

    我遇到了这个问题 我不知道如何解决 我用过一个ui select 多选 https github com angular ui ui select在我的页面中 首先 向获取数据的 url 发出 http get 请求 然后填充 ui sel
  • 我如何定义已检查整数的列表

    我有一个整数列表定义为List
  • 使用自适应窗口长度计算 data.table 中的滚动平均值

    我希望在具有自适应窗口的 data table 中按组计算移动平均值 以便在时间序列的开头没有 NA 我知道如何使用 frollmean 并设置adaptive TRUE 来做到这一点 例如参见 jangorecki 的响应this htt
  • 从相对路径获取图像

    在我的项目中我有 2 个包 images 包含图像和通知 包含java文件 在 notification main java 中 我使用此代码从图像中获取 Image 对象 Image image Toolkit getDefaultToo
  • WebLogic Server :: 服务器不支持 J2EE Web 模块规范 3.0 版

    当我尝试使用 WebLogic 11g 10 3 5 服务器运行应用程序时 它显示 服务器不支持 J2EE Web 模块规范 3 0 版 如何克服这个问题 Thanks 使用支持的规范版本 Servlet 2 5 开发您的应用程序 或者使用
  • 在 OSX“El Capitan”上安装 wxPython 2.8(用于骑行)

    我正在尝试安装 wxPython 2 8 unicode 版本 以便能够使用 robotsframework ride 到目前为止 从网站下载的安装程序失败 并显示错误 没有可安装的软件 并且使用Brew安装3 0版本 与ride不兼容 我
  • SagePay 表单 - 经典 ASP - 使用 rijndael.asp 时缺少货币字段

    我正在尝试在经典 ASP 中添加 Form Intergration SagePay 支付网关 我有一个来自 SO 的可用 PHP 版本 我已将其翻译成 VBSCRIPT 一切似乎都工作正常 但加密除外 我使用与 PHP 脚本相同的输入 以
  • 如何在 drupal 7 中的登录表单上设置占位符

    我需要在 Drupal 7 中为水平登录表单设置一个占位符 单击时该文本需要消失 他们只会说 用户名 和 密码 这是目前表单的代码 谢谢 function horizontal login block form form action ur
  • HTTP 状态 404 – 在 Spring boot 中未找到

    我是 Spring Boot 的初学者 我想在spring boot中编写HelloWorld编程 我在运行项目时做了一个 我得到的错误是 HTTP Status 404 Not Found 到目前为止我所尝试的内容附在下面 请帮助我写出一
  • Unix 时间戳到 FAT 时间戳

    我正在尝试将时间结构转换为 FAT 时间戳 我的代码如下所示 unsigned long Fat tm struct pTime unsigned long FatTime 0 FatTime pTime seconds 2 gt gt 1
  • Firebase/Google Cloud Function 中 HTTP 请求的多次返回

    我有一个云函数 可以对我的数据库进行一些搜索 这是一个相当昂贵的过程 涉及大量的计算 它的目标是找到最好的匹配 当找到好的匹配项时 我无法提前退出 因为可能会在迭代周期的后期找到更好的匹配项 因此 理想情况下 我想定期向客户更新迄今为止最好
  • 如何使用多个XMLHttpRequest?

    我需要从 8 个不同的 URL 获取 8 个 JSON 我将必须更改的查询字符串存储在数组中 并使用 for 循环遍历它 这是我的代码 var index ESL SC2 OgamingSC2 cretetion freecodecamp
  • 通过函数更改字符串值[重复]

    这个问题在这里已经有答案了 我注意到我的代码有很多这样的语句 var some string var some func var var another func var print var outputs modified string