小编Dan*_*nno的帖子

如何在Python 3中使用flake8?

在此代码段中,

def add(x:int, y:int) -> int:
    return x + y
Run Code Online (Sandbox Code Playgroud)

有一些函数注释只在python 3.0之后支持

当我为这个python代码执行flake8时:

$ flake8 7.3.py -vv
checking 7.3.py
def add(x: int, y: int) -> int:
return x + y
7.3.py:1:11: E901 SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我得到了无效的语法错误,但它应该是有效的语法.如何使用flake8来检查Python 3.x中仅支持的语法?

python python-3.x flake8

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

无法捕获模拟异常,因为它不继承BaseException

我正在开发一个涉及连接到远程服务器,等待响应,然后根据该响应执行操作的项目.我们捕获了几个不同的异常,并且根据捕获的异常而表现不同.例如:

def myMethod(address, timeout=20):
    try:
        response = requests.head(address, timeout=timeout)
    except requests.exceptions.Timeout:
        # do something special
    except requests.exceptions.ConnectionError:
        # do something special
    except requests.exceptions.HTTPError:
        # do something special
    else:
        if response.status_code != requests.codes.ok:
            # do something special
        return successfulConnection.SUCCESS
Run Code Online (Sandbox Code Playgroud)

为了测试这个,我们编写了如下测试

class TestMyMethod(unittest.TestCase):

    def test_good_connection(self):
        config = {
            'head.return_value': type('MockResponse', (), {'status_code': requests.codes.ok}),
            'codes.ok': requests.codes.ok
        }
        with mock.patch('path.to.my.package.requests', **config):
            self.assertEqual(
                mypackage.myMethod('some_address',
                mypackage.successfulConnection.SUCCESS
            )

    def test_bad_connection(self):
        config = {
            'head.side_effect': requests.exceptions.ConnectionError,
            'requests.exceptions.ConnectionError': requests.exceptions.ConnectionError
        }
        with mock.patch('path.to.my.package.requests', **config):
            self.assertEqual(
                mypackage.myMethod('some_address',
                mypackage.successfulConnection.FAILURE
            )
Run Code Online (Sandbox Code Playgroud)

如果我直接运行该函数,一切都按预期发生.我甚raise …

python exception-handling python-mock python-3.3 python-requests

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

来自json的脚本输出的scrapy

scrapy在python脚本中运行

def setup_crawler(domain):
    dispatcher.connect(stop_reactor, signal=signals.spider_closed)
    spider = ArgosSpider(domain=domain)
    settings = get_project_settings()
    crawler = Crawler(settings)
    crawler.configure()
    crawler.crawl(spider)
    crawler.start()
    reactor.run()
Run Code Online (Sandbox Code Playgroud)

它成功运行并停止但结果在哪里?我希望结果采用json格式,我该怎么做?

result = responseInJSON
Run Code Online (Sandbox Code Playgroud)

就像我们使用命令一样

scrapy crawl argos -o result.json -t json
Run Code Online (Sandbox Code Playgroud)

python json scrapy web-scraping scrapy-spider

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

AttributeError:FileInput实例没有属性'__exit__'

我试图从多个输入文件中读取并将每个文件中的第二行作为表格彼此相邻打印

import sys
import fileinput

with fileinput.input(files=('cutflow_TTJets_1l.txt ', 'cutflow_TTJets_1l.txt ')) as f:
    for line in f:
        proc(line)



def proc(line):
     parts = line.split("&") # split line into parts
     if  "&" in line:    # if at least 2 parts/columns
         print parts[1] # print column 2 
Run Code Online (Sandbox Code Playgroud)

但我得到一个"AttributeError:FileInput实例没有属性' __exit__'"

python

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

如何在Html.fromHtml中为下一行的空格开始新行,用于android中的文本视图

有没有人能告诉我如何Html.fromHtml在android 中为文本视图开始下一行空格的新行?我用<br>下一行的标签; 我无法实现空间,因为&nbsp;不会支持Html.fromHtml.可以告诉别人有什么其他办法来实现这个目标吗?

html android

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

为什么'和'&'或'在Python中返回操作数?

我正在经历LPTHW,我遇到了一些我无法理解的东西.什么时候你想要你的布尔值andor返回布尔值以外的东西?LPTHW文本指出像python这样的所有语言都有这种行为.他的意思是解释与编译语言或鸭类型与静态类型语言?

我运行了以下代码:

>>> False and 1
False
>>> True and 1
1
>>> 1 and False
False
>>> 1 and True
True
>>> True and 121
121
>>> False or 1
1
>>> False or 112
112
>>> False or "Khadijah"
'Khadijah'
>>> True and 'Khadijah'
'Khadijah'
>>> False or 'b'
'b'
>>> b = (1, 2, "K")
>>> b
(1, 2, 'K')
>>> False or b
(1, 2, 'K')
>>> 
Run Code Online (Sandbox Code Playgroud)

请帮我理解这里发生的事情.

根据文档:http://docs.python.org/2/library/stdtypes.html …

python boolean operands

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

创建numpy自定义对象数组会出现错误"SystemError:error return return without exception set"

我正在尝试使用numpy来存储我制作的一些自定义对象.以下是我的程序的简化版本

import numpy as np

class Element:
    def __init__(self): pass

a = Element()
periodicTable = np.array(range(7*32)).reshape((7,32))
periodicTable[0][0] = a
Run Code Online (Sandbox Code Playgroud)

但是,当我运行这个时,我得到了

Traceback (most recent call last):
  File "C:/Users/Dan/Desktop/a.py", line 9, in <module>
    periodicTable[0][0] = a
SystemError: error return without exception set
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么 - 据我所知,我所做的一切都应该是合法的.隐秘的错误信息本身并不是很有帮助 - 我认为这是一个numpy问题,但我一直无法确定我的问题.

python numpy

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

使用WSGI将用户重定向到URL(无框架)

我正在尝试使用python的WSGI开发一个小型Web应用程序.例如,如果用户选择Google,他们会被重定向到google.com,如果他们选择了Facebook,他们就会被重定向到facebook.com等.

from wsgiref.simple_server import make_server
from cgi import parse_qs, escape

main_html = """
<html>
<head><title> Welcome to redirection test page </title> </head>
<body>
    <form method="get" action='/visit'>
        <input type=radio name='site' value=google> Google
        <input type=radio name='site' value=facebook> Facebook
        <input type=submit value=submit>
    </form>
</body>
</html>
"""


def main(environ, start_response):

    response_body = main_html
    print type(response_body)   
    status = '200 OK'

    response_headers = [
                        ('Content-Type','text/html'),
                        ('Content-Length', str(len(response_body)))
                       ]


    start_response(status, response_headers)
    return [response_body]


def visit(environ, start_response):
    qs = parse_qs(environ['QUERY_STRING'])
    dest = qs.ge('site')[0]
    if dest == 'google':
        start_response('301 …
Run Code Online (Sandbox Code Playgroud)

python redirect wsgi wsgiref python-2.7

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

可以递增指针而不解除引用仍然是段错误或具有其他(未)定义的恶意吗?

我在网上找到的关于递增指针导致段错误的所有例子都涉及指针的取消引用 - 如果我只想增加它(例如在for循环结束时),我不会如果它最终在无效的内存中,因为我不会再次使用它.例如,在这个程序中我只需要每次迭代一步一步,但是在最后一次迭代之后我再也没有取消引用这些指针.

float* leftRowPointer, resultRowPointer;
// assume they were correctly initialized

for (unsigned int i = 0; i < 4; ++i, leftRowPointer += 4, resultRowPointer += 4) {
    // do some stuff
}
Run Code Online (Sandbox Code Playgroud)

我需要做这样的事吗?

for (unsigned int i = 0; i < 4; ++i) {
    // same stuff
    if (i != 3) {
        leftRowPointer += 4;
        resultRowPointer += 4;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来完成我想要做的事情?

当我自己尝试时,似乎没有什么不好的事情发生,但这并不能保证它会一直有效,不幸的是我在工作中无法访问Valgrind或类似的东西.

我们正在使用C++ 11标准,fwiw,我找不到任何直接适用于此的内容,但我会是第一个承认我不太了解标准的人知道在哪里寻找它.

c++ pointers memory-management segmentation-fault undefined-behavior

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

规范替代 - 使用镜子

PyPI可能不可靠.我有一个不幸的Travis-CI版本失败,因为pip无法安装我的一个要求(lxml是最臭名昭着的罪犯).

各种在线资源推荐--use-mirrors旗帜,到目前为止我已经解决了这个问题.但是,由于一些很好的理由而--use-mirrors弃用.

不幸的是,正如链接中所提到的,删除标志的一个主要原因是新的CDN支持的PyPI不应该有相同的问题.确实如此.我的构建仍然存在问题,除非我使用,否则我仍然无法使用pip可靠地安装软件包--use-mirrors.

发行说明发布1.5对2014年1月1日推荐使用标志之一-i,-index-url--extra-index-url.这很好,除了......我们遇到了一些相同的问题--use-mirrors,即这些镜像不一定是可信任的.

PyPI将镜子名单实际上已经被删除,留给我们一些非官方的镜子.因此,我有一个选择:继续使用--use-mirrors并希望上面的问题之一在被删除之前得到修复,或者选择一个镜子并希望它有效且值得信赖.

有广泛接受和信任的镜子吗?还是广泛接受和信任的替代方案?基本上,我该如何处理这个问题?

python pip mirror pypi

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