指定一个变量来表示一个Cod块

2024-09-24 02:17:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python编程新手,我有一个(也许)特定的问题。 我不知道python是否允许您这样做,但基本上我想指定一个变量来表示整个块的内容。在

例如,我有这样一个例子:

item.history[len(item.history)] = {'user': item.user,
                        'email': item.email, 'phone': item.phone,
                        'status': item.status, 'usage': item.usage,
                        'checkouttime': item.checkouttime,
                        'checkintime': item.checkintime,
                        'timeout': item.checkintime - item.checkouttime}

在一个地方有很多东西,在我的程序中,相同的代码块(如下简称为ShortHis)重复了大约15次,改变了历史键,有时使用不同的变量代替checkintime和checkouttime,所以我想如果我这样做:

^{pr2}$

那么这个:

item.history[len(item.history)] = {ShortHis
                        'timeout': item.checkintime - item.checkouttime}

可以工作,我可以节省一些空间,仍然可以编辑键、checkintime和checkouttime变量,但它不能。 为什么这个不管用?我怎么能做出我想要的东西?(如果存在类似的情况)

很抱歉,如果我遗漏了这些东西的具体名称,就像我说的,我是python编程新手。在

更清晰:我想把一大块东西,任何东西,不管内容或长度,都分配给一个变量(或其他东西),它可以像以前一样代表这些东西,所以我可以把这个变量放在某个东西的中间,它仍然像原来的代码一样运行。在


Tags: 代码内容lenemailstatus编程timeoutusage
3条回答

您可以使用“更新”方法来修改字典的内容。参考以下示例:

dict1 = {'a':1, 'b':2}
dict1.update({'c':3})

因此,创建一个原始字典并使用modify方法更新它,而不是将值存储在某个临时变量中。在

在这里使用函数可能是个好主意

def get_short_history(item):
    return {
       'user': item.user,
       'email': item.email,
       'phone': item.phone,
       'status': item.status,
       'usage': item.usage,
       'checkouttime': item.checkouttime,
       'checkintime': item.checkintime
    }

然后可以重用这个块

^{pr2}$

... a variable to represent a whole block of stuff.

那么您应该使用class,带可选的properties。在

class Item(object):
  def __init__(self, user, ...):
    self.user = user
     ...

someitem = Item(me, ...)
print someitem.timeout

相关问题 更多 >