问题标签 [python-3.7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在不注释类型的情况下添加数据类字段?
当数据类中有一个类型可以是任何类型的字段时,如何省略注释?
似乎上面的代码实际上并没有为fav_duck
. 它只是使它成为一个普通的旧类属性。
python - Python 的 __slots__ 和数据类的(内存方面和访问时间方面)比较是什么
Python__slots__
用于减少实例的内存占用,这是通过将变量存储在“小型固定大小的数组 [s] 中来实现的,就像元组或列表一样”。实例属性是可变的,但您不能添加其他属性。
另一方面,有一些数据类(根据我收集的内容)通过定义一些 dunder(等)来帮助创建类,并且 PEP 557 将其描述为“具有默认值的可变命名元组”。
我了解它们的目的是不同的,实际上您可以同时使用它们。
python - 排序python 3.7+字典的最快方法
既然从 Python 3.7 (和CPython 3.6 )开始保证 Python 字典的插入顺序,那么对字典进行排序的最佳/最快方法是什么——按值和按键?
最明显的方法可能是这样的:
有没有其他更快的方法来做到这一点?
请注意,这个问题不是重复的,因为以前关于如何对字典进行排序的问题已经过时了(基本上,答案是You can't; use a collections.OrderedDict
instead)。
python - 如何在 asyncio 中使用阻塞函数
我在一个项目中使用 django ORM(在 django 之外)。我的工作流程是
- 通过 django ORM 选择对象和
- 然后使用 asyncio lib 将其发送到消息队列
问题是你不能在异步环境中调用阻塞函数,你不能在阻塞环境中使用 async/await。
我想出了2个解决方案:
整个程序应该是异步的。并
loop.run_in_executor
在需要时用于调用阻塞函数。整个程序应该是同步的。并使用
asyncio.run()
(Python 3.7)调用所需的异步函数。
我无法决定哪种方法更好。
我知道以前有人问过类似的问题。我的问题是尝试结合阻塞和非阻塞代码时是否有一般规则?
python - Python中的上下文变量
假设我的 Python 应用程序中有一个函数,它定义了某种上下文 -user_id
例如。此函数调用不将此上下文作为函数参数的其他函数。例如:
我的问题是:
- Python 3.7的上下文变量可以用于此目的吗?如何?
- 这就是这些上下文变量的用途吗?
- 如何使用 Python v3.6 或更早版本执行此操作?
编辑
由于多种原因(架构遗留、库等),我不能/不会更改中间函数的签名f2
,所以我不能只user_id
作为参数传递,也不能将所有这些函数放在同一个类中。
python - python的正则表达式
我正在编写用于从字符串中删除测试限定符和额外分隔符的 regx。
我有一些模式如下,
预期的输出是,
我在下面写了相同的代码,
寻找优化方法来做到这一点以及将处理所有模式的代码。
python - OrderedDict 在 Python 3.7 中会变得多余吗?
这是否意味着这OrderedDict
将变得多余?我能想到的唯一用途是保持与不保留普通字典插入顺序的旧版本 Python 的向后兼容性。
python - 仅在 PyCharm 中尝试相对导入超出顶级包消息
更新:如果我将select
模块的名称(发生导入错误)更改为select1
,问题就消失了!什么?
首先:当我尝试从命令行导入我的包或在项目目录中运行 pytest 时,一切正常。
但是在 PyCharm 中,当我尝试运行我的测试时,并且仅在 PyCharm 中时,我遇到了“尝试相对导入超出顶级包”的问题。我不知道为什么。
我什至已经删除并重新克隆了存储库,但问题仍然存在。
这是问题分支的链接。
这是结核病:
我敢肯定这里发生了一些简单的事情,但我就是想不通。注意:我使用的是 Python 3.7 RC 1。
在sys.path
pycharm 中和命令行出来是一样的,除了 pycharm 还包括 pycharm 项目主包目录(由于某种原因出现了两次)。
python-3.x - 在 python 3.5 附带的 Ubuntu 16.04 上运行 python 3.7 的最佳方式
我想避免反向移植,它们似乎总是把我的包裹弄乱了。
所以我在想像 conda / virtualenv / 甚至 docker 这样的工具可以提供帮助。在我的系统上使用 python 3.7 最简单/最干净的方法是什么?
python - 数据类和属性装饰器
我一直在阅读 Python 3.7 的数据类作为命名元组的替代品(我通常在必须对结构中的数据进行分组时使用它)。我想知道数据类是否与属性装饰器兼容,以便为数据类的数据元素定义 getter 和 setter 函数。如果是这样,这是在某处描述的吗?或者有没有可用的例子?