我昨天刚从这个网站了解到我可以:
class Seq(object):
def __init__(self, seq):
self.seq = seq
def __repr__(self):
return repr(self.seq)
def __str__(self):
return str(self.seq)
def all(self):
return Seq(self.seq[:])
def head(self, count):
return Seq(self.seq[:count])
def tail(self, count):
return Seq(self.seq[-count:])
def odd(self):
return Seq(self.seq[1::2])
def even(self):
return Seq(self.seq[::2])
def reverse(self):
return Seq(self.seq[::-1])
>>> s = Seq(range(0, 100))
>>> print s.head(10).odd().even().reverse()
[9, 5, 1]
我想列举Seq类中这些序列方法链的可能组合,可能是:
^{pr2}$如何使用itertools.product()
来
(一)。生成可调用函数链列表?就像这样:
foo = s.head().odd().even().reverse()
(二)。生成eval()可用的链字符串,然后我可以存储在ascii文件或eval()中,或用于日志记录?
head()
,tail()
可以接受参数,even()
,odd()
不需要,例如,
head()和tail()的参数可能来自以下列表:
head_lmt = [10,20,30]
tail_lmt = [30,40,50]
foo = s.head().odd().tail().reverse()
^------------------------------------head_lmt 10 or 20 or 30
^-----------------------tail_lmt 30 or 40 or 50
如果我的Q1是可能的,我如何将这些参数填充到可调用列表和eval()可调用字符串中,也就是说生成更具体的可调用列表和eval()可调用字符串?在
谢谢!在
注意,类似“s.head()”的东西意味着一个“绑定”到Seq的特定实例的方法,即“s”类似于序列头()”表示一个未绑定的方法,因此仍然可以在Seq的不同实例中传递。在
在此基础上,它只需要基本的函数组合和字符串连接。在
不过,我不确定您所说的附加参数示例是什么意思。如何将不同的参数值与不同的函数组合起来?在
相关问题 更多 >
编程相关推荐