小编Rab*_*ski的帖子

Python:使用%x(语言环境)格式化的日期不符合预期

我有一个datetime对象,我想根据操作系统区域设置创建一个日期字符串(例如在Windows'7区域和语言设置中指定).

在Python的日期时间格式文档之后,我使用了%x应该输出" Locale的适当日期表示 " 的格式代码.我希望这种"表示"可以是Windows"短日期"或"长日期"格式,但它不是一种.(我将短日期格式设置为d/MM/yyyy和长日期格式dddd d MMMM yyyy,但输出是dd/MM/yy)

这里有什么问题:Python文档,Python实现或我的期望?(以及如何修复?)

python datetime locale internationalization

3
推荐指数
2
解决办法
7210
查看次数

在Python模块之间交换元组是否可以?

我有一个很小的Python程序,包含很少的模块(约4个左右).主模块创建一个元组列表,从而表示许多记录.这些元组可以通过一个返回它们的简单函数(例如get_records())用于其他模块.

我不确定这是不是很好的设计.问题是其他模块需要知道元组中每个元素的索引.这增加了模块之间的耦合,并且对于想要使用主模块的人来说不是非常透明.

我可以想到几个选择:

  1. 使可作为模块常量(例如,元组元素的索引值IDX_RECORD_TITLE,IDX_RECORD_STARTDATE等).这避免了像魔术数字的需要title = record[3].

  2. 不要使用元组,而是创建一个记录类,并返回这些类对象的列表.优点是类方法将具有自解释名称record.get_title().

  3. 不要使用元组,而是使用字典.所以在这种情况下,该函数将返回一个字典列表.优点是字典键也是不言自明的(尽管使用该模块的人需要知道它们).但这似乎是一个巨大的开销.

我发现元组是Python的强大功能之一(很容易在没有类/对象的编码开销的情况下传递复合数据),所以我目前使用(1),但仍然想知道什么是最好的方法.

python tuples coupling

1
推荐指数
1
解决办法
202
查看次数

Mercurial:如何删除文件中的一行,用于最后4个变更集(尚未推送)?

我有一个本地mercurial存储库,其中有5个提交仍然需要推送到服务器.但是,我在最后4次提交中意外地在两个特定文件中包含了一行,我真的不想在那里(也没有一个更改集).

有没有任何实用的方法来删除这两个文件中的那些行?(除了丢弃我的本地存储库,克隆服务器的副本,并再次手动重新应用所有更改)

mercurial undo

0
推荐指数
1
解决办法
119
查看次数

这是一个Python闭包吗?(或者,为什么这段代码有效?)

我想知道为什么以下Python代码工作:

def sum(a, b):
    return a+b+c
c=3
print sum(1,2)
# result: 6
Run Code Online (Sandbox Code Playgroud)

我本来期望编译错误.当变量不是时,
如何sum定义函数c(我会说这c不在sum函数的范围内)?

这是他们所说的关闭吗?

正如我所理解的那样,变量必须已被"提及",如下面的代码片段(从此站点复制).这里x已经提到了(尽管没有"填写")inc()函数的定义.

def makeInc(x):
  def inc(y):
     # x is "closed" in the definition of inc
     return y + x
Run Code Online (Sandbox Code Playgroud)

python closures

0
推荐指数
1
解决办法
421
查看次数