小编Cai*_*von的帖子

如何设置sys.argv以便对其进行单元测试?

我想设置

sys.argv
Run Code Online (Sandbox Code Playgroud)

所以我可以用不同的组合进行单元测试.以下不起作用:

#!/usr/bin/env python
import argparse, sys
def test_parse_args():
    global sys.argv
    sys.argv = ["prog", "-f", "/home/fenton/project/setup.py"]
    setup = get_setup_file()
    assert setup == "/home/fenton/project/setup.py"
def get_setup_file():
    parser = argparse.ArgumentParser()
    parser.add_argument('-f')
    args = parser.parse_args()
    return args.file
if __name__ == '__main__':
    test_parse_args()
Run Code Online (Sandbox Code Playgroud)

然后运行文件:

pscripts % ./test.py                                                                                           
  File "./test.py", line 4
    global sys.argv
              ^
SyntaxError: invalid syntax
pscripts %  
Run Code Online (Sandbox Code Playgroud)

python

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

为什么我不能直接向任何python对象添加属性?

我有这个代码:

>>> class G:
...   def __init__(self):
...     self.x = 20
...
>>> gg = G()
>>> gg.x
20
>>> gg.y = 2000
Run Code Online (Sandbox Code Playgroud)

这段代码:

>>> from datetime import datetime
>>> my_obj = datetime.now()
>>> my_obj.interesting = 1
*** AttributeError: 'datetime.datetime' object has no attribute 'interesting'
Run Code Online (Sandbox Code Playgroud)

根据我的Python知识,我会说datetime覆盖setattr/ getattr,但我不确定.你能在这里说清楚吗?

编辑:我不是特别感兴趣datetime.我总是想知道对象.

python attributes object

21
推荐指数
2
解决办法
8749
查看次数

在Django增加页面命中数

我有一个带IntegerField(hit_count)的表,当访问一个页面时(例如http://site/page/3),我希望hit_count数据库中的记录ID 3的列增加1.

查询应该像:

update table set hit_count = hit_count + 1 where id = 3
Run Code Online (Sandbox Code Playgroud)

我可以使用标准的Django模型约定吗?或者我应该手动编写查询?

python django django-models

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

被捕异常是无

我有一个用python2.7编写的脚本,为了调试目的,我使用一个catch-all语句来捕获和打印所有异常.出于某种原因,有时会发现异常None.什么可能导致这种情况发生?

代码是这样的:

from __future__ import print_function

try:
    run_arbitrary_code()
except Exception as e:
    print(e)
Run Code Online (Sandbox Code Playgroud)

输出是:

None
None
None
None
Run Code Online (Sandbox Code Playgroud)

我从来没有经历过异常None,并想知道是什么导致这种情况.

为了回答一些评论,该功能做了很多.它包括图形搜索以及通过套接字发送和接收JSON数据等内容,因此有很多事情可能出错.但是这里的问题是引发异常None,这对我的调试根本没有帮助.

python python-2.7

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

存储在寄存器中的变量的地址

如果在我的代码中某处,我使用变量的地址(例如,将其传递给其他函数),编译器会自动选择将其存储在内存中吗?(而不是将其存储在寄存器中的可能性).

否则,如果我要求变量的地址(存储为寄存器)会发生什么?我知道我们不能将变量的地址显式设置为register(register int c).

编辑:

例如,如果我做了类似的事情

int c = 1;
print("Address of c: %p", &c);
Run Code Online (Sandbox Code Playgroud)

那么这个变量不能存储在寄存器中,不是吗?编译器会自动将其设置为存储在内存中吗?否则(如果它只是存储在一个寄存器中),屏幕上显示的地址是什么?

c

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

我们如何在java中创建接口对象?

这段代码如何工作我完全不解......

package com.servletpack.examples;

interface check {
    public void message();
}
public class Interface {
    public static void main(String[] args) {
        try {
            check t = new check() {//how????????????????
                public void message() {
                    System.out.println("Method defined in the interface");
                }
            };
            t.message();
        } catch (Exception ex) {
            System.out.println("" + ex.getMessage());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java interface

9
推荐指数
3
解决办法
5万
查看次数

使用Python从HTML中提取数据

我在Python中使用我的代码处理了以下文本:

<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>
Run Code Online (Sandbox Code Playgroud)

你能建议我如何从内部提取数据<td>吗?我的想法是将其放在CSV文件中,格式如下:some link, some data 1, some data 2, some data 3.

我希望如果没有正则表达式,它可能很难,但我真的仍然在努力对抗正则表达式.

我以下列方式或多或少地使用了我的代码:

tabulka = subpage.find("table")

for row in tabulka.findAll('tr'):
    col = row.findAll('td')
print col[0]
Run Code Online (Sandbox Code Playgroud)

理想的情况是让每个td在一些数组中竞争.上面的Html是python的结果.

html python

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

知道项目在数组中的位置

纸盘阵列改组后,我想用其下的卡来切换J1的位置。有没有一种方法可以引用J1而不知道它在数组中的位置?谢谢。

import random

deck = ['AC', '2C', '3C', '4C', '5C', '6C', '7C', '8C', '9C', 'TC', 'JC', 'QC', 'KC',
        'AS', '2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', 'TS', 'JS', 'QS', 'KS',
        'AH', '2H', '3H', '4H', '5H', '6H', '7H', '8H', '9H', 'TH', 'JH', 'QH', 'KH',
        'AD', '2D', '3D', '4D', '5D', '6D', '7D', '8D', '9D', 'TD', 'JD', 'QD', 'KD',
        'J1', 'J2']

# shuffle deck
random.shuffle(deck)

#switch Joker1 with card under it
Run Code Online (Sandbox Code Playgroud)

python arrays shuffle

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

检测python中的文件句柄泄漏?

我的程序似乎是泄漏文件句柄.我怎样才能找到哪里?

我的程序在几个不同的地方使用文件句柄 - 从子进程输出,调用ctypesAPI(ImageMagick)打开文件,然后复制它们.

它崩溃了shutil.copyfile,但我很确定这不是泄漏的地方.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 874, in main
    magpy.run_all()
  File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 656, in run_all
    [operation.operate() for operation in operations]
  File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 417, in operate
    output_file = self.place_image(output_file)
  File "C:\Python25\Lib\site-packages\magpy\magpy.py", line 336, in place_image
    shutil.copyfile(str(input_file), str(self.full_filename))
  File "C:\Python25\Lib\shutil.py", line 47, in copyfile
    fdst = open(dst, 'wb')
IOError: [Errno 24] Too many open files: 'C:\\Documents and Settings\\stuart.axon\\Desktop\\calzone\\output\\wwtbam4\\Nokia_NCD\\nl\\icon_42x42_V000.png'
Press any key to continue …
Run Code Online (Sandbox Code Playgroud)

python file handle

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

从HTML中删除空节点

我们正在从一个内容系统迁移到另一个内容系统,并且有大量的HTML,其中有行,例如,像这样:

<p style="text-align: justify;"><i> </i></p>
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来剥离HTML与HTML,其中没有文本输出到屏幕.因此,与此类似的线将被剥离.

并且,这只是没有文本输出的许多行的例子之一.所以,我需要找到它们全部剥离.我不必担心图像,电影等,因为在旧的内容管理系统中只能使用文本.

顺便说一下,绝大多数行都是以p标签或div标签开头(忽略前导空格).

html python

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

标签 统计

python ×8

html ×2

arrays ×1

attributes ×1

c ×1

django ×1

django-models ×1

file ×1

handle ×1

interface ×1

java ×1

object ×1

python-2.7 ×1

shuffle ×1