小编xjc*_*jcl的帖子

带有 pep8 命名的 Flake8 抱怨 CamelCase 导入

我尝试使用以下内容:

import xml.etree.ElementTree as ET
Run Code Online (Sandbox Code Playgroud)

flake8withpep8-naming给出以下警告:

import xml.etree.ElementTree as ET
Run Code Online (Sandbox Code Playgroud)

然后我尝试:

import xml.etree.ElementTree as et
import xml.etree.ElementTree as element_tree
Run Code Online (Sandbox Code Playgroud)

但再一次:

N817 camelcase 'xml.etree.ElementTree' imported as acronym 'ET'
Run Code Online (Sandbox Code Playgroud)

flake8 在这里想要什么?

python pep8 flake8

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

Kotlin 脚本文件中仅部分语法突出显示

我在 Android Studio 中打开了一个文件夹,其中包含一个 Kotlin 脚本文件 ( .kts)。我在项目结构中配置了 JDK 作为 SDK(但我没有添加 gradle 文件),并且作为 Kotlin 脚本运行该文件工作正常。然而,语法突出显示仅部分有效,请参阅下面的示例(Linux Mint 19.3 和 AS 4.1.3):

在此输入图像描述

一些缺失的东西:

  • 未使用的变量应为灰色 ( val unused)
  • to/forEach关键字应为黄色斜体
  • 拼写错误的变量名应该是红色的
  • 不好的风格,例如多余的空格,应该加下划线
  • ETC。

这里究竟发生了什么事?这是某种“后备”模式吗?

有什么方法可以使用普通 Android 项目的“完整”语法突出显示,以便我可以更早地发现错误吗?

作为参考,它“应该”是这样的(粘贴到随机的 Android 项目中):

在此输入图像描述

kotlin android-studio

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

Kotlin 的启动是在主线程还是后台线程中启动协程?

我试图在 Android 的后台运行一个任务,我想知道我是否需要指定GlobalScope.launch(Dispatchers.IO) { ... }或者一个简单的GlobalScope.launch { ... }就足够了。我担心的是第二种形式是在主线程还是后台/IO 线程中启动协程?


根据Android 文档

launch不带Dispatchers.IO参数。当您不传递 aDispatcher来启动时,任何从viewModelScope 运行启动的协程都在主线程中运行

根据Kotlin 文档

在 GlobalScope 中启动协程时使用的默认调度程序由 Dispatchers.Default 表示并使用共享的线程后台池,因此launch(Dispatchers.Default) { ... }使用与GlobalScope.launch { ... }.

我知道协程直到最近才处于试验阶段,Android-Kotlin 与纯 Kotlin 开发是不同的,但这些陈述对我来说似乎是矛盾的。

android jvm coroutine kotlin kotlin-coroutines

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

使用 setuptools/distutils 构建 PyInstaller exe 时,ensure_local_distutils 内部出现断言错误

我正在尝试将一些 Python 代码转换为.exePyInstaller。我的代码使用 distutils,这在过去已经让我有些头疼,因为它似乎重复了 setuptools 的功能,并且与它的交互很奇怪。例如,它需要未使用的setuptools 导入才能正常工作,这对我来说似乎非常不Python。

我需要在我的项目中使用这两个包。我在订单中导入了两个包,import setuptools; import distutils因为另一个订单抛出了一个已经令人担忧的警告。

我的脚本运行良好,但在我将其转换为 exe 后,我在 setuptools 的可疑子模块内得到了回溯_distutils_hack是的,它只是打印一个没有上下文的文件名。

Traceback (most recent call last):
  <18 lines omitted>
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "_distutils_hack\override.py", line 71, in <module>
  File "_distutils_hack\__init__.py", line 71, in do_override
  File "_distutils_hack\__init__.py", line 59, in ensure_local_distutils
AssertionError: C:\Users\<omitted>\AppData\Local\Temp\_MEI294562\distutils\core.pyc 
Run Code Online (Sandbox Code Playgroud)

我在用

  • Python 3.7.7 on win32(但我用 3.8、3.9 和 3.10 复制了它)
  • pyinstaller==4.8(2022 年 1 月)Windows 版
  • distutils==3.7.7(内置) …

python distutils setuptools pyinstaller

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

为什么我不能在Eigen3中消除这个临时变量?

我通过逐个矩阵乘法遇到了麻烦.即一个看起来很像的表达式总是返回一个接近[1 0]的向量,而一个看起来相似的表达式返回正确的结果:

// version WITH temp var, correct
Eigen::Vector3d lcoord_eig(lcoord[0], lcoord[1], lcoord[2]);
auto lcoord2d = P3to2 * lcoord_eig;
std::cout << std::endl << lcoord2d << std::endl;

// version WITHOUT temp var, always [1 0]
auto lcoord2d_2 = P3to2 * Eigen::Vector3d(lcoord[0], lcoord[1], lcoord[2]);
std::cout << std::endl << lcoord2d_2 << std::endl;
Run Code Online (Sandbox Code Playgroud)

where P3to2是2乘3矩阵(Eigen::MatrixXd)并且lcoord是其他库的3d矢量类型,上面的代码包含在for循环中.

一些输出(由我注释):

-0.0036135
2.1684e-18   // correct

1
0   // [1 0], wrong

0.00209583
0.000388139   // correct

1
5.55112e-17   // [1 0], wrong

0.00148429
-0.000435008   // correct …
Run Code Online (Sandbox Code Playgroud)

c++ eigen eigen3

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

如何将 Unity 的 Debug.Log 打印到屏幕/GUI?

当您在 Unity IDE 内部运行项目时,您可以在单独的控制台小部件中看到日志消息。但是,我正在开发一款多人游戏,因此我需要至少在 2 个以上客户端上进行测试,这需要在 IDE 之外进行独立构建,因此我无法再看到日志消息。有什么方法可以在实际屏幕或 GUI 上打印日志吗?

c# logging unity-game-engine

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