小编Jim*_*ard的帖子

X和Y或Z - 三元运算符

在Java或C中,我们将<condition> ? X : Y其转换为Python X if <condition> else Y.

但也有这个小技巧:<condition> and X or Y.

虽然我明白,这是相当于前述三元运营商,我觉得很难把握如何andor运营商能够产生正确的结果.这背后的逻辑是什么?

python syntax ternary-operator

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

为什么python切片中允许使用非整数内置类型?

我只是改进了一个必须支持切片的库的测试覆盖率,我注意到切片可以包含非整数类型:

>>> slice(1, "2", 3.0)
slice(1, '2', 3.0)
>>> sl = slice(1, "2", 3.0)
>>> [1,2,3][sl]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: slice indices must be integers or None or have an __index__ method
Run Code Online (Sandbox Code Playgroud)

这可能只是我的静态输入背景,但对我来说,似乎很奇怪__index__没有a 的内置类型可以在这里传递TypeError.为什么会这样?我是否正确假设允许任意类型以支持实现类型的鸭子类型__index__?由于最常用案例的性能原因,是否缺乏类型检查?

PEP 357之前,示例中的切片无效吗?

python slice python-3.x python-internals

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

TypeError:序列项0预期的str实例,找到的字节

我正在进行Python挑战,但在任务6中我遇到了一些问题:

comments = []
comments.append(file_zip.getinfo('%s.txt'%name).comment)
print(''.join(comments))
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:

TypeError:序列项0:预期的str实例,找到的字节

我寻找答案,并尝试这样:

print(b''.join(comments))
Run Code Online (Sandbox Code Playgroud)

它工作和打印:

b'***************************************************************\n****************************************************************\n**                                                    **\n**   OO    OO    XX    YYYY    GG    GG  EEEEEE NN      NN  **\n**    OO    OO  XXXXXX   YYYYYY   GG
    GG   EEEEEE  NN    NN   **\n**   OO    OO XXX  XXX YYY   YY  GG GG     EE       NN  NN    **\n**    OOOOOOOO XX    XX YY        GGG       EEEEE     NNNN     **\n**   OOOOOOOO XX    XX YY        GGG       EEEEE      NN      **\n**   OO    OO XXX  XXX YYY   YY  GG GG     EE         NN      **\n**
 OO    OO  XXXXXX   YYYYYY   GG   GG   EEEEEE     NN …
Run Code Online (Sandbox Code Playgroud)

python string python-3.x

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

如何解码 dtype=numpy.string_ 的 numpy 数组?

我需要使用 Python 3 解码一个按以下方式编码的字符串:

>>> s = numpy.asarray(numpy.string_("hello\nworld"))
>>> s
array(b'hello\nworld', 
      dtype='|S11')
Run Code Online (Sandbox Code Playgroud)

我试过:

>>> str(s)
"b'hello\\nworld'"

>>> s.decode()
AttributeError                            Traceback (most recent call last)
<ipython-input-31-7f8dd6e0676b> in <module>()
----> 1 s.decode()

AttributeError: 'numpy.ndarray' object has no attribute 'decode'

>>> s[0].decode()
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-34-fae1dad6938f> in <module>()
----> 1 s[0].decode()

IndexError: 0-d arrays can't be indexed
Run Code Online (Sandbox Code Playgroud)

python string numpy python-3.x

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

是否常规地说调用函数并调用方法?

我正在阅读Think Python:如何像计算机科学家一样思考.笔者使用"援引"与方法和"呼"与功能.

这是一个惯例吗?如果是这样,为什么要做出这种区分呢?为什么称函数被调用,但据说可以调用方法

python oop methods function python-3.x

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

在参数化泛型中,isinstance和issubclass中的mypy差异从python 3.5到3.6

在我从python 3.5升级到python 3.6之前,这个工作:

import typing
issubclass(list, typing.List[int])  # returns True
isinstance([1, 2 ,3], typing.List[int]) # returns True
Run Code Online (Sandbox Code Playgroud)

现在在python 3.6中,这两个都引发了以下异常:

TypeError: Parameterized generics cannot be used with class or instance checks
Run Code Online (Sandbox Code Playgroud)

这是新的预期行为还是错误?如果打算如何执行检查,上面的代码在python 3.6中进行?

python typing type-hinting python-3.x mypy

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

生成器函数和异步生成器函数的用途有什么区别

在 Python 中,异步生成器函数是协程,生成器函数也是协程。

生成器函数和异步生成器函数的用途有什么区别?

谢谢。

python asynchronous coroutine python-3.x python-3.6

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

理解 Python 3 列出了每个元素的打印 None 值

作为 Python 中的菜鸟,我在第 3 版中打印了列表的所有元素,经过全面研究后,我找不到对这种行为的解释。

但是,我知道每个函数都必须返回一些值,并且当它未定义时,函数返回“Null”(或 Python 中的“None”)。但是为什么在这种情况下,在正确打印所有元素后,它会为另一个列表中的每个元素打印“无”?

>>> a_list = [1,2]
>>> a_list
[1, 2]
>>> [print(f) for f in a_list]
1
2
[None, None]
Run Code Online (Sandbox Code Playgroud)

python list python-3.x

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

在哪里可以找到有关使用sphinx-doc的拿破仑扩展的Google风格文档字符串支持的新语法的更多信息?

这里针对1.3.4版本的sphinx-doc拿破仑Google风格文档字符串示例显示函数/方法的可选参数应记录如下:

param2 (str, optional): The second parameter. Defaults to None.
  Second line of description should be indented.
Run Code Online (Sandbox Code Playgroud)

但由于版本1.4a0同一页面这里显示了以下的方式做同样的事情:

param2 (Optional[str]): The second parameter. Defaults to None.
    Second line of description should be indented.
Run Code Online (Sandbox Code Playgroud)

但是我没有在文档中看到对这种新语法的任何解释.在哪里可以找到有关使用sphinx-doc的拿破仑扩展的Google风格文档字符串支持的新语法的更多信息?

python python-sphinx

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

Python中可解构的功能是什么?

deconstructiblePython 中的装饰器有什么作用?我遇到了这个装饰器,正在查看其他人的代码,但是我搜索了Python文档,却找不到该装饰器的实际功能?

@deconstructible
class UserValidator(object):
    def __call__(self, value):
        if value:
           etc
Run Code Online (Sandbox Code Playgroud)

给定上面的代码,对此类添加'deconstructible'有什么作用?

python django python-3.x

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