pep相关内容

Python:在主程序的开头导入&;PEP 8

PEP 8建议在程序开始时导入模块。 现在,我觉得在main程序的开头(即在if __name__ == '__main__'之后)导入其中一些是有意义的。例如,如果主程序从命令行读取参数,我倾向于在main程序的开头执行import sys:这样,在将代码用作模块时,就不必导入sys,因为在这种情况下,不需要访问命令行参数。 这对PEP8的侵犯有多严重?我应该克制住不做这件事吗?或者 ..
发布时间:2022-07-21 12:08:48 Python

为什么 Python3 中没有 xrange 函数?

最近我开始使用 Python3,它缺少 xrange 很痛苦. 简单例子: Python2: from time 导入时间为 t定义计数():st = t()[x for x in xrange(10000000) if x%4 == 0]et = t()印刷等数数() Python3: from time 导入时间为 tdef xrange(x):返回迭代器(范围(x))定 ..
发布时间:2021-12-02 17:28:39 Python

Python 中的类型提示有什么好处?

我正在阅读 PEP 484 -- 类型提示 当它被实现时,函数指定它接受和返回的参数类型. def greeting(name: str) ->字符串:返回“你好"+名字 我的问题是,如果实现,使用 Python 进行类型提示有什么好处? 我在类型有用的地方使用了 TypeScript(因为 JavaScript 在类型识别方面有点愚蠢),而 Python 对类型有点智能,如果实现 ..
发布时间:2021-09-11 20:08:14 Python

使用 PEP 484 的动态返回类型

假设我有一个函数,它将根据字符串输入参数返回一个类,如下所示: def foo(bar):如果 bar == 'baz':返回巴兹()别的:返回嗡嗡声() 在这种情况下,Baz 和 Buz 都是 Biz 的子类,但每个都有许多不同的函数,因此声明返回type 作为超类并不是特别有用.假设我不在乎我的 .pyi 文件是否可怕,有什么方法可以让我声明为给定输入返回的子类? 解决方案 我认为 ..
发布时间:2021-09-11 19:53:51 Python

PEP572 中的海象运算符示例

PEP572 中给出的示例之一是 # 重用计算成本高的值[y := f(x), y**2, y**3] 目前在 python 中,您必须执行以下操作之一: # 选项 1y = f(x)[y,y**2,y**3] 或 # 选项 2[f(x), f(x)**2, f(x)**3] 该示例暗示此处的选项 2 可以改进,但我从未见过比第一个选项更推荐的选项.选项 2(以及海象运营商)优于选项 ..
发布时间:2021-06-28 19:10:42 Python

PyCharm 中的部分存根

我想在我的项目中引入部分类型注释.例如重载.我发现 pep561 引入了部分存根文件支持. 我使用 PyCharm 开发我的项目并添加相应的 *.pyi 文件.并得到了预期的信息,但 PyCharm 报告在 pyi 文件中找不到参考. 当pyi文件中没有条目时,是否可以强制PyCharm查看原始py文件?或者也许它也可以部分进入课堂? 我创建示例项目来显示问题(原始项目太大): ..
发布时间:2021-06-23 19:50:58 Python

pep 420 setup.py中的namespace_packages用途

在使用PEP420名称空间软件包(不含__init__.py的软件包)时,setup.py中的 namespace_packages 参数的用途是什么? 我玩了一下,发现是否声明了命名空间包,都没有区别."setup.py install"和"pip install".无论如何都可以工作. 我正在构建一个自动的setup.py代码生成器,如果不需要的话,很乐意不进行处理. 解决方 ..
发布时间:2021-05-01 18:32:47 Python

pip无法为scipy建立轮子

我刚刚下载了新的python 3.8,并且尝试使用以下命令安装scipy软件包: pip3.8 install scipy 但是,构建失败并出现以下错误: **Failed to build scipy** **ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed dir ..
发布时间:2020-08-05 21:14:58 其他开发

每个pylint警告背后的规则,概念和用法在哪里详细?

我静止 发现皮林特,我理解为什么有许多 Pythonists 停用一些(或许多)警告以降低Pylint的声音,但目前,作为 Python新手我想使用pylint来提高我的 Pythonic理解力和我的代码质量,以帮助我: 从声明/说明中了解更多信息 加深一些概念 评估重构的优点/缺点 等 那么在某个地方可以讨论,论证,解释所有警告,或者仅仅是来自pylint团队的精打细算吗? ..
发布时间:2020-07-02 20:35:36 Python

编码样式(PEP8)-模块级别"dunders"

"Dunder"的定义( D ouble 下分数): 我有一个问题要问Python代码中模块级别"dunders"(如__all__,__version__,__author__等)的位置. 在阅读 PEP8 并看到此堆栈溢出问题. 可接受的答案是: __author__是全局“变量",因此应出现在导入的下方. 但是在PEP8部分模块级dunder名称我读到以下内容: ..
发布时间:2020-07-02 20:34:33 Python

Python是否评估前向引用的类型提示?

我正在查看转发参考并注意到以下声明: ...该定义可以表示为字符串文字,稍后再解决. 那让我想知道,“以后"是什么时候,又是什么时候?解释器以后不再尝试将其解析为文字,那么怎么办?仅仅是编写了第三方工具可以做到这一点吗? 演示解释器结果的小例子: class A: def test(self, a: 'A') -> None: pass class ..
发布时间:2020-07-02 20:34:30 Python

根据PEP257自动检查文档字符串样式的工具

诸如 pep8 之类的工具可以检查源代码样式,但不会根据 pep257 , 更新 我决定自行实现这种静态分析工具,请参阅: https://github.com/GreenSteam/pep257 现在, pep257 的大部分内容都已涵盖. 设计受到所提及的 pep8 工具的严重影响. 解决方案 我不知道用于python doc字符串的任何静态分析工具.在开始使用PyL ..
发布时间:2020-07-02 20:34:28 Python

如何编写pep8配置(pep8.rc)文件?

我找到了pep8的文档,但无法理解如何编写它们.除了设置max-line-length和ignore,我什至找不到其他带有选项的示例. 我正在尝试编写一个.pep8.rc文件,除其他外,我需要执行以下操作: 启用显示源 启用统计信息 启用计数 排除目录(例如,./random) 有人可以举一个例子或一个例子吗? 解决方案 首选方法是在项目的顶层使用setup.cfg ..
发布时间:2020-07-02 20:34:25 Python

数据类与输入.NamedTuple主要用例

长话短说 PEP-557 将数据类引入了Python标准库,基本上可以扮演与collections.namedtuple和typing.NamedTuple相同的角色.现在,我想知道如何将用例命名为仍然更好的解决方案分开. 数据类优于NamedTuple 当然,如果需要的话,所有功劳归于dataclass: 可变对象 继承支持 property装饰器,可管理的属性 开 ..
发布时间:2020-07-02 20:34:22 Python

您会忽略哪些PEP 8准则,并坚持遵循哪些准则?

多年来,尽管我出于自己的原因始终如一地故意破坏某些准则,但我编写的Python越多,我就越同意大多数准则. 我很想知道人们在宗教信仰8中(或也许还有其他的人民教义)坚持什么信仰,为什么这样做,以及人们感到不便或不足的地方. 就我而言(以及在一般情况下工作),我们只有几处不同之处: 用下划线分隔小写字母的名称,我可以看到它的含义,因为它始终是一致的,但是我们倾向于使用lowerCa ..
发布时间:2020-07-02 20:34:19 Python

PEP 3106建议使用较慢的方法?为什么?

最近,我不得不将字典中的值转换为Python 3.6中的列表以及一个应该经常发生的用例. 试图成为一个好人,我想使用一种接近PEP的解决方案.现在,PEP 3106建议 list(d.keys()) 这显然可以正常工作-但是在我看到的Windows 7计算机上使用timeit >python -m timeit "[*{'a': 1, 'b': 2}.values()]" 100 ..
发布时间:2020-07-02 20:33:15 Python

如何避免以"0"开头的python数字文字被视为八进制?

我正在尝试编写一个小的Python 2.x API以支持获取 job by jobNumber,其中jobNumber作为整数提供. 有时用户提供jobNumber作为整数文字 以0开头,例如037537. (这是因为他们一直 由R(一种理智地认为037537==37537的语言)抚慰.) 但是,Python会考虑以"0"开头的整数文字 为OCTAL,因此为037537!=37537,而不是037 ..
发布时间:2020-07-02 20:33:13 Python

三重单引号和三重双引号的文档字符串有什么区别?

我只是想知道两种编写Python Docstrings(__doc__)的方式之间的区别: 三个单引号: ''' Comment goes here ''' 三个双引号: """ Comment goes here """ 以后生成文档时格式化文档字符串的方式是否存在细微差别? 解决方案 否.他们是一样的.唯一的区别是,第一个可以包含三个未转义的双引号的序列, ..
发布时间:2020-07-02 20:33:10 Python