小编yak*_*xxx的帖子

2d数组的零

python中没有数组类型,但为了模拟它我们可以使用列表.我希望用零填充2d数组结构.我的问题是:在这两个表达式中有什么区别,如果有的话:

zeros = [[0 for i in xrange(M)] for j in xrange(M)]
Run Code Online (Sandbox Code Playgroud)

zeros = [[0]*M]*N
Run Code Online (Sandbox Code Playgroud)

zeros一样吗?通过速度和可读性更好地使用哪一个?

python

33
推荐指数
4
解决办法
5万
查看次数

使用pytz进行日期时间和时区转换 - 令人兴奋的行为

我正在尝试将时区感知datetime对象转换为UTC,然后再回到它的原始时区.我有一个以下代码段

t = datetime(
    2013, 11, 22, hour=11, minute=0,
    tzinfo=pytz.timezone('Europe/Warsaw')
)
Run Code Online (Sandbox Code Playgroud)

现在在ipython中:

In [18]: t
Out[18]: datetime.datetime(
    2013, 11, 22, 11, 0, tzinfo=<DstTzInfo 'Europe/Warsaw' WMT+1:24:00 STD>
)
Run Code Online (Sandbox Code Playgroud)

现在让我们尝试转换为UTC并返回.我希望有相同的表示:

In [19]: t.astimezone(pytz.utc).astimezone(pytz.timezone('Europe/Warsaw'))
Out[19]: datetime.datetime(
    2013, 11, 22, 10, 36, tzinfo=<DstTzInfo 'Europe/Warsaw' CET+1:00:00 STD>
)
Run Code Online (Sandbox Code Playgroud)

然而,我们看到Out[18]并且Out[19]有所不同.这是怎么回事?

python django timezone datetime pytz

22
推荐指数
1
解决办法
2万
查看次数

如果阻止,则返回负面条件

如果我有一个函数应该在某些条件下执行一个动作,而是返回null,这更干净:

def func():
    if not condition:
        return None

    [...]
    return asd
Run Code Online (Sandbox Code Playgroud)

要么

def func():
    if condition:
        [...]
        value = asd
    else:
        value = None

    return value
Run Code Online (Sandbox Code Playgroud)

我已经阅读了每个函数应该有一个返回点的范例.另一方面,python的zen表示flat比嵌套好,后来的版本在整个动作代码上面添加了一个嵌套级别(标记为[...]).

还请记住,条件可能更复杂,例如,添加多个嵌套级别.

python oop procedural-programming coding-style

6
推荐指数
0
解决办法
374
查看次数

Mongoengine文档为EmbeddedDocument

我有一个mongoengine.Document子类用户定义.

class User(Document):
    meta = {'collection': 'users', 'allow_inheritance': False}
    _id = ObjectIdField()
    password = StringField(max_length=50)
    name = StringField(max_length=50, required
Run Code Online (Sandbox Code Playgroud)

现在我想将它用作具有自己集合的独立文档,但我也想将它作为EmbeddedDocument用作游戏记录的一部分:

class Game(Document):
    meta = {'collection': 'games', 'allow_inheritance': False}
    _id = ObjectIdField()
    name = StringField()
    owner = EmbeddedField(User)
Run Code Online (Sandbox Code Playgroud)

但有一个问题.Mongoengine允许仅嵌入EmbeddedDocument子类.有办法解决吗?

python mongodb mongoengine

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