小编Lig*_*eze的帖子

在Python中,如果我在"with"块内返回,文件是否仍会关闭?

考虑以下:

with open(path, mode) as f:
    return [line for line in f if condition]
Run Code Online (Sandbox Code Playgroud)

文件是否会正确关闭,或者以return某种方式绕过上下文管理器

python return with-statement

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

与Pygame的基本联网

我需要为Pygame项目做一些基本的网络.

基本上,它是2D单人游戏或合作游戏.网络只需要支持2个玩家,其中一个作为主机.

需要发送的唯一信息是球员,小兵和子弹的位置.

我一直在阅读,Twisted不断出现,但我之前没有做过网络,我不确定这可能是一种矫枉过正.

那么,相对新手是否有可能在Pygame中实现网络?谁能指出我正确的方向?

python networking pygame twisted

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

有一个类跟踪它的实例是Pythonic吗?

请使用以下代码段

class Missile:
    instances = []

    def __init__(self):
        Missile.instances.append(self)
Run Code Online (Sandbox Code Playgroud)

现在拿代码:

class Hero():
    ...
    def fire(self):
        Missile()
Run Code Online (Sandbox Code Playgroud)

当英雄射击时,需要创建导弹并将其附加到主列表中.因此,当激活时,英雄对象需要引用该列表.以下是一些解决方案,但我确信还有其他解决方案:

  • 使列表成为全局列表,
  • 使用类变量(如上所述)或
  • 让hero对象持有对列表的引用.

我没有在gamedev上发布这个,因为我的问题实际上更为一般:以前的代码是否可以考虑?鉴于这种情况,是否有更多的Pythonic解决方案?

python pygame

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

是bool =(布尔表达式)Pythonic形式的语句吗?

请使用以下代码

is_valid = command == "B"
Run Code Online (Sandbox Code Playgroud)

要么

can_move = move in legal_moves()
Run Code Online (Sandbox Code Playgroud)

这些都是形式

bool = (boolean expression)
Run Code Online (Sandbox Code Playgroud)

我发现自己写了这样的陈述,我想知道它是否在某种程度上被认为是"unpythonic".我不太确定我非常喜欢它,但它很简洁.

那么谁有更清洁的选择?

python

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

标签 统计

python ×4

pygame ×2

networking ×1

return ×1

twisted ×1

with-statement ×1