小编jck*_*jck的帖子

如何使pytest灯具与装饰功能一起使用?

当我修饰具有fixture作为参数的测试函数时,py.test似乎失败了.

def deco(func):

    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        return func(*args, **kwargs)

    return wrapper


@pytest.fixture
def x():
    return 0

@deco
def test_something(x):
    assert x == 0
Run Code Online (Sandbox Code Playgroud)

在这个简单的例子中,我收到以下错误:

TypeError: test_something() takes exactly 1 argument (0 given).
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,最好不要过多地修改装饰器?(因为装饰器也在测试代码之外使用.)

python unit-testing decorator pytest

31
推荐指数
2
解决办法
8207
查看次数

我如何学习编写高效且可维护的C代码?

我目前在编程方面的经验仅限于在过去将一些shell脚本和一些程序集拼凑在一起.但是,我在大学里学到了C代码的基本语法.

我想学习如何编写高效的C代码,我很困惑是从K&R还是C编程开始:现代方法.我还应该学习一些算法书籍,以便我不会从一开始就编写低效的代码吗?

c

10
推荐指数
2
解决办法
7855
查看次数

如何强制python(使用win32com)创建一个新的excel实例?

我正在自动执行一些需要很长时间的excel相关任务.

我正在使用以下方法创建一个excel实例:

excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
Run Code Online (Sandbox Code Playgroud)

但是,在脚本开始运行之后,如果我选择一个打开的excel工作簿(而不是一个python正在处理),那么python脚本会崩溃.但是,如果我打开一个新的excel工作簿并在其中键入内容,python脚本不受影响.

有没有一种特殊的方式我可以调用excel来防止这种情况发生?或任何其他解决方案?

编辑:这似乎工作.

excel = win32.DispatchEx('Excel.Application')
Run Code Online (Sandbox Code Playgroud)

python com excel

10
推荐指数
2
解决办法
4282
查看次数

我在64位机器上制作这种结构的最小尺寸是多少?

typedef struct node{
    char one;
    char two;
    struct node *next;
} nodea;
Run Code Online (Sandbox Code Playgroud)

我在考虑编译器填充方面,有什么方法可以使sizeof(nodea)小于16?

c gcc

5
推荐指数
2
解决办法
190
查看次数

如何使类方法返回自身的新实例?

我有一个python类,其中包含一些列表和变量(在中初始化__init__)。

我想有一个对这个特定实例数据进行操作并返回一个新实例(新数据)的方法。最后,此方法应返回一个具有修改后数据的新实例,同时保留原始实例的数据不变。

什么是Python的方式来做到这一点?

编辑:

我在类中有一个方法,该方法以complement()特定方式修改数据。我想添加一个__invert__()方法,该方法返回带有complement()ed数据的类的实例。

示例:假设我有一个类 A。a
= A()
a.complement()将修改实例a中的数据。
b =〜a将使实例中的数据保持不变,但b将包含complement()数据。

python

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

尽管有__init__.py,但Python无法导入自定义模块

我有一个文件夹 __init__.py

#!/usr/bin/python2
flags="test"
Run Code Online (Sandbox Code Playgroud)

现在,当我运行./main.py(从文件夹内),我得到错误

#!/usr/bin/python2
import foldername

def main():
    print foldername.flags

if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)

python

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

为什么这会失败?(google appengine datastore,python)

  1 from google.appengine.ext import webapp
  2 from google.appengine.ext.webapp.util import run_wsgi_app
  3 from google.appengine.ext import db
  4 
  5 a = db.GqlQuery('SELECT * FROM Store WHERE count = True').count
  6 
  7 print 'Content-Type: text/plain'
  8 print ''
  9 print str(a)+'blah blah'
Run Code Online (Sandbox Code Playgroud)

表'Store'存在.

错误是:

Traceback (most recent call last):
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 3245, in _HandleRequest
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 3186, in _Dispatch
    base_env_dict=env_dict)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 531, in Dispatch
    base_env_dict=base_env_dict)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 2410, in Dispatch
    self._module_dict)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine

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

如何从CGI服务器下载perl脚本而不是运行它?

我想从这个网站下载的Perl脚本: http://pages.cs.wisc.edu/~david/courses/cs552/S12/handouts/bins/

当我打开或下载其中任何一个时,脚本都会执行.但是,我想要脚本中的文本.有什么方法可以做到这一点吗?

apache perl firefox cgi

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

如何在vim中更改重复查找字符的键绑定?

在vim中找到下一个字符的默认键是;但是我已;映射到:
So,我想重复查找字符使用.
我该怎么做?此外,这样做是否有任何缺点(它会与行为发生冲突.)

vim

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

如何让子进程按顺序获取标准输出和标准错误?

示例测试文件(print.py):

import sys
print('stdout')
print('stderr', file=sys.stderr)
Run Code Online (Sandbox Code Playgroud)

运行它的代码(x.py):

import subprocess
cmd = ['python', 'print.py']
print(subprocess.check_output(cmd, universal_newlines=True, stderr=subprocess.STDOUT))
Run Code Online (Sandbox Code Playgroud)

如果我从 shell 运行 print.py,它会首先打印 stdout。但是,如果我运行 x.py,它会首先打印 stderr。有什么办法可以让我以正确的顺序获得输出?

python subprocess

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

标签 统计

python ×6

c ×2

apache ×1

cgi ×1

com ×1

decorator ×1

excel ×1

firefox ×1

gcc ×1

google-app-engine ×1

perl ×1

pytest ×1

subprocess ×1

unit-testing ×1

vim ×1