python - 列表理解函数指针Python
问题描述
我有一个定义属性(self.b)的方法(dosomething)。下面的虚拟代码:
class foo:
def __init__(self):
self.a = 1
def dosomething(self, i):
self.b = 2 * self.a + i
return self.b ** 2
testobj = foo()
属性 a 可以改变 - 因此在给定 a 的当前值的情况下调用 dosomething 来确定 b。
我想写一个像下面这样的列表理解。除了,我需要调用 dosomething 来改变 b 。下面的虚拟代码只会重复 self.b 的当前值 20 次。
[testobj.b for i in range(20)] # pass i to dosomething then store self.b
快速的方法是只返回 self.b 但是,return 语句专注于另一个更复杂的值。如果我可以返回 self.b,那么以下语句将起作用:
[testobj.dosomething(i) for i in range(20)]
属性 b 只是我想要访问的中间值。是否有针对这种情况的单行列表理解?我正在考虑在返回 self.b 的方法中定义一个函数,但是我不确定如何正确访问它。所以像 foo().dosomething(1).getb() 这样的东西不会起作用,因为 dosomething(1) 评估为一个数字。
class foo:
def __init__(self):
self.a = 1
def dosomething(self, i):
self.b = 2 * self.a + i
def getb():
return self.b
return self.b ** 2
我想我还应该补充一点,我不想返回不同值的数据结构。它会影响我在其他地方的大部分代码。
解决方案
对于列表推导来说,这不是一个好的用例。
推荐阅读
- node.js - 尝试在 Windows 上安装 NPM 包时遇到证书错误。我正在使用节点 v10.9.0
- javascript - 如何使用 react-native-link-preview 从 url 获取标题
- python - 禁止在类外部使用默认构造函数
- vb.net - 在 VB.NET 中读取时从文件中排除二进制数据的前 'x' 个字节
- c++ - Question about error handeling in istream
- php - 致命错误:调用未定义函数 stats_cdf_normal()
- python - 间歇性 StaleElementReferenceException
- c# - C# 语言命令的 Razor 语法
- haskell - Freer-Simple Freer Monads 如何统一 IO 异常处理和错误效果
- swift - Xcode 10 beta SnapKit constraints type error