小编iga*_*rav的帖子

我怎样才能用Python代表'Enum'?

我主要是一名C#开发人员,但我目前正在使用Python开发一个项目.

我怎样才能在Python中表示Enum的等价物?

python enums python-3.x

1146
推荐指数
28
解决办法
80万
查看次数

我如何保护Python代码?

我正在开发一个Python软件,将分发给我的雇主的客户.我的雇主希望使用时间限制的许可证文件来限制软件的使用.

如果我们分发.py文件甚至.pyc文件,那么很容易(反编译)删除检查许可文件的代码.

另一个方面是我的雇主不希望我们的客户阅读代码,担心代码可能被盗或至少是"新颖的想法".

有没有一个很好的方法来处理这个问题?优选使用现成的解决方案.

该软件将在Linux系统上运行(所以我认为py2exe不会这样做).

python obfuscation licensing copy-protection

607
推荐指数
22
解决办法
27万
查看次数

Θ(n)和O(n)之间有什么区别?

有时我看到Θ(n)带有奇怪的Θ符号,中间有一些东西,有时只有O(n).这只是打字的懒惰,因为没有人知道如何输入这个符号,或者它是否意味着不同的东西?

big-o notation time-complexity big-theta

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

Git忽略目录和目录/*有什么区别?

我对在git中忽略目录内容的正确方法感到困惑.

假设我有以下目录结构:

my_project  
     |--www  
         |--1.txt  
         |--2.txt
     |--.gitignore
Run Code Online (Sandbox Code Playgroud)

放这个有什么区别:

www
Run Code Online (Sandbox Code Playgroud)

还有这个?

www/*
Run Code Online (Sandbox Code Playgroud)

我问这个问题的原因是:在git中,如果目录为空,git将不会在存储库中包含这样的空目录.所以我正在尝试在目录下添加一个额外的.gitkeep文件的解决方案,这样它就不会是空的.当我尝试该解决方案时,如果在.gitignore文件中,我写如下:

www
!*.gitkeep
Run Code Online (Sandbox Code Playgroud)

它不起作用(我的意图是忽略www下的所有内容但保留目录).但如果我尝试以下方法:

www/* 
!*.gitkeep
Run Code Online (Sandbox Code Playgroud)

然后它的作品!所以我认为这两种方法之间必然存在一些差异.

git notation gitignore dotfiles

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

使用Python将CSV文件导入sqlite3数据库表

我有一个CSV文件,我想使用Python将此文件批量导入我的sqlite3数据库.命令是".import .....".但它似乎无法像这样工作.谁能给我一个如何在sqlite3中做到这一点的例子?我正在使用Windows以防万一.谢谢

python database csv sqlite

90
推荐指数
10
解决办法
13万
查看次数

如何从git子模块中仅克隆文件夹?

我正在尝试从外部github仓库获取一个文件夹,以便在我的项目中使用.

我希望我的项目设置如下:

-my_project
    -submodule
        -code.py
    -MY_README
    -.git
Run Code Online (Sandbox Code Playgroud)

我有一个名为some-submodule的远程repo,结构如下:

-submodule
    -code.py
-README
-.gitignore
Run Code Online (Sandbox Code Playgroud)

所以我只想将子模块文件夹添加到我的项目中.

但是之后我最终得到了这个

git submodule add http://github.com/user/submodule.git submodule

-my_project
    -submodule
        -submodule
            -code.py
        -README
        -.gitignore
    -MY_README
    -.gitignore
Run Code Online (Sandbox Code Playgroud)

我是git的新手所以我真的不知道是否可以使用git.如果它有一些帮助我在Windows上使用msysgit.

那么,无论如何我可以从公共仓库中获得一个干净的子模块文件夹吗?

如果你对我正在尝试做的事情感到好奇,我试图直接从他们的repos这些django插件1 2中将它们添加到我的项目中.

git git-submodules

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

python中的泛型/模板?

python如何处理通用/模板类型场景?假设我想创建一个外部文件"BinaryTree.py"并让它处理二进制树,但对于任何数据类型.

所以我可以传递一个自定义对象的类型,并有一个该对象的二叉树.这是如何在python中完成的?

python templates generic-programming

62
推荐指数
5
解决办法
8万
查看次数

在Java中,首先执行"+"或"++"?

我在Java中尝试了以下代码

t1 = 5;
t2 = t1 + (++t1);
System.out.println (t2);
Run Code Online (Sandbox Code Playgroud)

我的观点是因为++具有比+更高的优先级,以上变为

t2 = t1 + (++t1);
t2 = t1 + 6;      // t1 becomes 6 here
t2 = 6 + 6;
t2 = 12;
Run Code Online (Sandbox Code Playgroud)

但是,我得到了t2的答案11.谁能解释一下?

java operator-precedence

52
推荐指数
4
解决办法
5050
查看次数

Python中的String.strip()

在学习python时,我遇到了这个代码,它接受一个文本文件,将每一行拆分成一个数组,并将其插入到一个自定义字典中,其中数组[0]是键,数组[1]是值:

my_dict = {}

infile = open("file.txt")
for line in infile:
    #line = line.strip() 
    #parts = [p.strip() for p in line.split("\t")]
    parts = [p for p in line.split("\t")]
    my_dict[parts[0]] = parts[1]
    print line

for key in my_dict:
    print "key: " + key + "\t" + "value " + my_dict[key]
Run Code Online (Sandbox Code Playgroud)

我在关闭和打开注释行的情况下运行程序,得到了相同的结果.(当然用它下面的一行替换第二个注释行.)在我看来,做一个strip()是可选的.留下它是更好的做法吗?

python string strip

43
推荐指数
3
解决办法
27万
查看次数

在列表中循环时获取下一个元素

li = [0, 1, 2, 3]

running = True
while running:
    for elem in li:
        thiselem = elem
        nextelem = li[li.index(elem)+1]
Run Code Online (Sandbox Code Playgroud)

当它到达最后一个元素时,IndexError会引发一个(就像任何列表,元组,字典或迭代的字符串一样).我实际上希望在那一点nextelem上等于li[0].我对此非常麻烦的解决方案是

while running:
    for elem in li:
        thiselem = elem
        nextelem = li[li.index(elem)-len(li)+1]   # negative index
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

python iteration list next

42
推荐指数
6
解决办法
13万
查看次数