小编Eli*_*sky的帖子

Pygame在图形方面可以做什么wxPython不能?

我想用Python开发一个非常简单的2D游戏.Pygame是Python中最受欢迎的游戏开发库,但我已经非常熟悉wxPython并且使用起来很舒服.我甚至在其中写了一个俄罗斯方块克隆,它非常流畅.

我想知道,Pygame在图形方面提供了什么(暂时放弃声音)wxPython不能做什么?在Pygame中制作图形比在wxPython中更简单/更快吗?它是否更加跨平台?

看起来我在这里遗漏了一些东西,但我不知道是什么.

python graphics pygame wxpython

16
推荐指数
2
解决办法
5747
查看次数

在c ++中优化对成员的访问

我正在使用不同的编译器遇到以下代码的不一致优化行为:

class tester
{
public:
    tester(int* arr_, int sz_)
        : arr(arr_), sz(sz_)
    {}

    int doadd()
    {
        sm = 0;
        for (int n = 0; n < 1000; ++n) 
        {
            for (int i = 0; i < sz; ++i)
            {
                sm += arr[i];
            }
        }
        return sm;
    }
protected:
    int* arr;
    int sz;
    int sm;
};
Run Code Online (Sandbox Code Playgroud)

doadd函数模拟对成员的一些密集访问(忽略此问题的溢出).与作为函数实现的类似代码相比:

int arradd(int* arr, int sz)
{
    int sm = 0;
    for (int n = 0; n < 1000; ++n) 
    {
        for (int …
Run Code Online (Sandbox Code Playgroud)

c++ optimization g++ visual-c++

15
推荐指数
2
解决办法
927
查看次数

函数的functor/applicative/monad实例的用例

Haskell有Functor,ApplicativeMonad为函数(具体地,部分应用类型定义的实例(->) a在标准库),围绕函数组合构建的.

理解这些实例是一个很好的心灵弯曲练习,但我的问题是关于这些实例的实际用法.我很高兴听到人们使用这些实际代码的现实场景.

haskell functional-programming

15
推荐指数
2
解决办法
529
查看次数

在Python中有效匹配多个正则表达式

当你有正则表达式时,词法分析器很容易编写.今天我想用Python编写一个简单的通用分析器,并提出:

import re
import sys

class Token(object):
    """ A simple Token structure.
        Contains the token type, value and position. 
    """
    def __init__(self, type, val, pos):
        self.type = type
        self.val = val
        self.pos = pos

    def __str__(self):
        return '%s(%s) at %s' % (self.type, self.val, self.pos)


class LexerError(Exception):
    """ Lexer error exception.

        pos:
            Position in the input line where the error occurred.
    """
    def __init__(self, pos):
        self.pos = pos


class Lexer(object):
    """ A simple regex-based lexer/tokenizer.

        See below for an example of …
Run Code Online (Sandbox Code Playgroud)

python regex lexical-analysis

14
推荐指数
3
解决办法
8230
查看次数

从线程队列获取所有项目

我有一个线程将结果写入队列.

在另一个线程(GUI)中,我定期(在IDLE事件中)检查队列中是否有结果,如下所示:

def queue_get_all(q):
    items = []
    while 1:
        try:
            items.append(q.get_nowait())
        except Empty, e:
            break
    return items
Run Code Online (Sandbox Code Playgroud)

这是一个很好的方法吗?

编辑:

我问,因为有时等待的线程会卡住几秒而不会取出新的结果.

"卡住"问题原来是因为我在空闲事件处理程序中进行处理,而不是确保通过调用实际生成这样的事件wx.WakeUpIdle,如建议的那样.

python queue multithreading

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

LOC计数是否包括测试和评论?

虽然LOC(#行代码)是对代码复杂性的有问题的衡量,但它是最受欢迎的,并且在非常仔细地使用时,可以提供对代码库的至少相对复杂性的粗略估计(即,如果一个程序是10KLOC)另一个是100KLOC,用相同的语言编写,由大致相同能力的团队编写,第二个程序几乎肯定要复杂得多).

在计算代码行时,您是否更愿意计算注释?测试怎么样?

我见过各种方法.像cloc和sloccount这样的工具允许包含或排除注释.其他人认为评论是代码的一部分及其复杂性.

单元测试存在同样的困境,有时可以达到测试代码本身的大小,甚至超过它.

我已经看到了整个范围内的方法,从仅计算"操作"非注释非空白行到"XXX行测试,注释代码",这更像是在所有代码文件中运行"wc -l"项目".

您的个人偏好是什么?为什么?

metrics code-metrics

14
推荐指数
2
解决办法
4118
查看次数

正确制定A*算法

我正在研究A*路径寻找算法的定义,它似乎在不同的地方有所不同.

不同之处在于在遍历节点的后继者时执行的操作,并且发现后继者在关闭列表上.

  • 一种方法(由维基百科本文建议)说:如果后继者在封闭列表中,则忽略它
  • 另一种方法(例如,此处此处建议)说:如果后继者在封闭列表中,则检查其成本.如果它高于当前计算的分数,则从关闭的列表中删除该项目以供将来检查.

我很困惑 - 哪种方法是正确的?直觉上,第一个对我来说更有意义,但我想知道定义的差异.其中一个定义是错误的,还是它们在某种程度上是同构的?

algorithm artificial-intelligence a-star dijkstra path-finding

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

用于嵌入C#/ .NET应用程序的脚本语言?

[ 我能找到的唯一类似的问题很久以前就被回答了,并且主要包含对IronPython的引用.我想考虑其他选项]

我们有一个用C#编写的复杂数据分析应用程序.该应用程序应为用户提供定制数据分析任务的复杂方法.目前,我们使用配置文件和Excel表的混合来指定它,但它变得难以处理,所以我们正在寻找一种嵌入的脚本语言.

什么是C#/ .NET嵌入最好的简单脚本语言?有可能以某种方式嵌入VBA类似于Excel/Word?或者是使用JavaScript/Lua?

不用说,将主应用程序中的一些API和对象暴露给嵌入式脚本应该很容易.

.net c# embed scripting

14
推荐指数
3
解决办法
7984
查看次数

Python的os.path阻塞了希伯来文件名

我正在编写一个脚本,必须移动一些文件,但不幸的是它似乎并没有os.path很好的国际化.当我有希伯来语命名的文件时,有问题.这是目录内容的屏幕截图:

替代文字
(来源:thegreenplace.net)

现在考虑这个代码遍历此目录中的文件:

files = os.listdir('test_source')

for f in files:
    pf = os.path.join('test_source', f)
    print pf, os.path.exists(pf)
Run Code Online (Sandbox Code Playgroud)

输出是:

test_source\ex True
test_source\joe True
test_source\mie.txt True
test_source\__()'''.txt True
test_source\????.txt False
Run Code Online (Sandbox Code Playgroud)

注意如何os.path.exists认为希伯来语命名的文件甚至不存在?我怎样才能解决这个问题?

Windows XP Home SP2上的ActivePython 2.5.2

python internationalization hebrew

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

"随机"的独立实例

以下代码试图说明我想要的内容.我基本上想要两个"随机"的实例,它们彼此独立地运行.我想在一个类中种子"随机"而不影响另一个类中的"随机".我怎样才能做到这一点?

class RandomSeeded:
    def __init__(self, seed):
        import random as r1
        self.random = r1
        self.random.seed(seed)
    def get(self):
        print self.random.choice([4,5,6,7,8,9,2,3,4,5,6,7,])

class Random:
    def __init__(self):
        import random as r2
        self.random = r2
        self.random.seed()
    def get(self): 
        print self.random.choice([4,5,6,7,8,9,2,3,4,5,6,7,])

if __name__ == '__main__':
    t = RandomSeeded('asdf')
    t.get()       # random is seeded within t
    s = Random()
    s.get()       
    t.get()       # random should still be seeded within t, but is no longer
Run Code Online (Sandbox Code Playgroud)

python random module class seed

14
推荐指数
2
解决办法
4090
查看次数