基于任意数量的索引将列表拆分为多个部分的最佳方法是什么?例如,给出下面的代码
indexes = [5, 12, 17]
list = range(20)
Run Code Online (Sandbox Code Playgroud)
返回这样的东西
part1 = list[:5]
part2 = list[5:12]
part3 = list[12:17]
part4 = list[17:]
Run Code Online (Sandbox Code Playgroud)
如果没有索引,则应返回整个列表.
我正在寻找一种更好的方法来调用基于Python中的变量的函数与使用if/else语句(如下所示).每个状态代码都有相应的功能
if status == 'CONNECT':
return connect(*args, **kwargs)
elif status == 'RAWFEED':
return rawfeed(*args, **kwargs)
elif status == 'RAWCONFIG':
return rawconfig(*args, **kwargs)
elif status == 'TESTFEED':
return testfeed(*args, **kwargs)
...
Run Code Online (Sandbox Code Playgroud)
我认为这将需要某种工厂功能,但不确定语法
我正在尝试更改Django模型的行为,以允许我直接从父级访问外键的属性,例如
cache.part_number
vs
cache.product.part_number
Run Code Online (Sandbox Code Playgroud)
我尝试重写该__getattr__方法如下,但当我尝试访问外键的属性时,我收到一个递归错误
class Product(models.Model):
part_number = models.CharField(max_length=10)
...
class Cache(models.Model):
product = models.ForeignKey(Product)
...
def __getattr__(self, name):
value = getattr(self.product, name, None)
if value:
return value
else:
raise AttributeError
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?