【发布时间】:2019-08-12 16:35:30
【问题描述】:
我有一些class:
import numpy as np
class SomeClass:
def __init__(self):
self.x = np.array([1,2,3,4])
self.y = np.array([1,4,9,16])
对于 Python 中的 SomeClass 的某些实例,是否有一种巧妙的方法来迭代 x 和 y?目前要迭代我将使用的变量:
some_class = SomeClass()
for x, y in zip(some_class.x, some_class.y):
print(x, y)
...但是您能否定义SomeClass 的行为以使其同样有效:
some_class = SomeClass()
for x, y in some_class:
print(x, y)
感谢您的帮助!
【问题讨论】:
-
如果你想要一个“整洁的方式” ->
for i in SomeClass(np.array([1,2,3,4]), np.array([1,4,9,16])):``` class SomeClass(zip): def __new__(cls, *args): return zip.__new__(cls, *args) ` `` -
@bison 太整洁了 ...
标签: python python-3.x class iterable