我有一个自定义课程,
class A:
def __init__(self, a, b):
self.a = a
self.b = b
该类不可迭代或可索引或诸如此类。如果可能的话,我想保持这种方式。是否可以进行以下工作?
>>> x = A(1, 2)
>>> min(x)
1
>>> max(x)
2
我想到的是这个问题,min
并且max
在docs中被列为“公共序列操作”
。由于range
完全相同的文档将其视为序列类型,因此我一直认为必须存在某种可能的优化方法range
,也许我可以利用它。
也许有一种我不知道的魔术方法可以实现这一目标?
是。当min
采用一个参数时,它假定它是可迭代的,对其进行迭代并采用最小值。所以,
class A:
def __init__(self, a, b):
self.a = a
self.b = b
def __iter__(self):
yield self.a
yield self.b
应该管用。
附加说明:如果您不想使用__iter__
,我不知道这样做的方法。您可能想创建自己的min函数,_min_
如果传递给它的参数中有一个方法,则调用某个方法,然后调用旧方法min
。
oldmin = min
def min(*args):
if len(args) == 1 and hasattr(args[0], '_min_'):
return args[0]._min_()
else:
return oldmin(*args)
问题内容: 我有一个定制课程, 这个类不可iterable或indexable之类的。如果有的话 可能的话,我想保持这种状态。有什么可能吗 喜欢下面的工作吗? 让我想到这个的是 以及 列为 中的“公共顺序操作” [文档](https://docs.python.org/3/library/stdtypes.html#通用-顺序- 操作)。自 已考虑 对于同一个文档的序列类型,我认为 对“range
我目前正在努力实现一种保护隐私的数据挖掘算法。对于不同各方之间的通信部分,我使用的是Netty 4.0。双方之间的通信流如下所示: 其中是启动和控制整个计算的主方。安全多方乘法的逻辑位于 Netty 中。还有另一种用于安全添加的协议。 目前,我使用类似的解决方案,如Netty核心团队的Norman Maurer所示,以了解子协议计算是否已完成。但这感觉有点像是在对抗框架。 是否有办法从< code
我只是想知道我是否有可能返回activePodcastViewData。每当我试图在GlobalScopeactivePodcastViewData.Without调用它时,我都不允许返回,我确实让一切正常工作fine.However我更新了我的存储库,将挂起方法添加到it.Hence我正在获取挂起函数应该只从协程或另一个挂起函数调用。 fun getPodcast(podcastSummaryV
请就如何实现这一点提出一个方法? ========================================================================================================= jaspyt提供了3种不同的密码解密方法。我尝试了前两种方法,并且能够成功地加密/解密,但问题是密钥必须作为环境或系统属性传递。 第三种方法是使用自定义J
我试图找到一个更好的解决方案,以防止Hibernate代理初始化时,通过MapSTRt将实体映射到响应DTO。 我一直在将我们的代码库转换为使用ModelMapper中的MapStruct。如果我想用ModelMapper完成我的要求,我可以做如下简单的事情: 自定义getter方法允许我检查是否已经从数据库中获取了字段,以避免N 1次初始化。 它看起来像: 我不能简单地覆盖普通的getter,因
问题内容: 我想在Python中使用PhantomJS。我用谷歌搜索了这个问题,但是找不到合适的解决方案。 我发现 可能是一个不错的选择。但是我无法通过一些争论。 使用可能是目前合适的解决方案。我想知道是否有更好的解决方案。 有没有办法在Python中使用PhantomJS? 问题答案: 在python中使用PhantomJS的最简单方法是通过Selenium。最简单的安装方法是 安装NodeJS