我注意到我的代码有很多这样的语句:
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(使用前将#替换为@)