python - 使用函数永久更新其参数之一
问题描述
如何创建一个函数来更新其参数之一的值?考虑以下示例:
def f(x,b):
b+=1
return x*b
b=4
a=f(1,b)
print a
print b
的更新b
只在函数内部有效,b
在函数使用后保持原值。当然,在这种情况下,我也可以通过返回b
然后使用来解决问题,a,b=f(1,b)
但我不想这样做。
如果我真的想b
更新并更改其值而不显式返回它,我该怎么办?
解决方案
您想要保持状态,这强烈表明需要一个类。我假设第二个和后续调用f
应该使用保存的b
变量。这是一个保持该状态并使用魔术方法使其可调用的类:
class F:
def __init__(self, b):
self.b = b
def __call__(self, x):
self.b += 1
return x * self.b
b = 4
f = F(b)
a = f(1)
print(a, f.b)
推荐阅读
- react-native - 如何用 Jest 测试 StackActions?
- java - 查询 DynamoDb 全局二级索引
- scala - Spray-json: [错误] 引用不存在的类 spray.json.package$
- verilog - 如何实现非连续采样点的过渡覆盖?
- image - Azure DevOps 配置文件图片未显示在板上
- android - 无法迁移到 Gradle DSL 插件,找不到“com.android.library”]
- c# - 如何在 .Net MVC 中使用 Array 的内容填充 DropDown?
- python - 如何使用 API 网关传递给 Cloud Function 的服务帐户的 JWT 在 Cloud Function 中初始化 Google BigQuery 客户端
- logging - 如何在我的 apache2 日志中输出消息的 LogLevel
- python - 从python中的数据框列创建数组-迭代时出错