小编ano*_*non的帖子

将变量的名称作为字符串

这个主题讨论如何在Python中将函数的名称作为字符串获取:如何在Python中将 函数名称作为字符串获取?

如何为变量做同样的事情?(注意Python变量没有属性__name__,至少在Python中retrieve_name)

换句话说,如果我有一个变量,例如:

foo = dict()
foo['bar'] = 2
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个函数/属性,例如'foo':

retrieve_name(foo) 
Run Code Online (Sandbox Code Playgroud)

返回字符串 __name__

更新:

既然人们在问我为什么要这样做,这里就是一个例子.我想在此列表中在Pandas中创建一个DataFrame,其中列名 由实际字典的名称给出:

# List of dictionaries for my DataFrame
list_of_dicts = [n_jobs, users, queues, priorities]
Run Code Online (Sandbox Code Playgroud)

python

112
推荐指数
13
解决办法
16万
查看次数

使用 Pip 下载 pyproject.toml 中声明的依赖项

我有一个不包含requirements.txt. 但它有一个pyproject.toml文件。

如何下载此 Python 项目所需的包(依赖项)并使用pyproject.tomlPip 包管理器(而不是构建工具 Poetry)声明。

因此pip download -r requirements.txt,而不是类似的东西pip download -r pyproject.toml

python pip python-poetry pyproject.toml

68
推荐指数
3
解决办法
5万
查看次数

反转图像的 y 轴而不颠倒图像

我正在尝试使用matplotlib. 然而,y 轴自下而上递减。我希望它在不翻转图像的情况下自下而上增加

我有以下代码

import matplotlib.pyplot as plt
import numpy as np
img_path = '/path/to/image.tif'
img = plt.imread(img_path)
plt.imshow(img, cmap = 'gray')
Run Code Online (Sandbox Code Playgroud)

它产生以下图像: 在此处输入图片说明

图像可以在那里获得

我试过plt.gca().invert_yaxis()没有成功

我该怎么办

python axis image-processing matplotlib

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

如何防止乌龟向相反方向移动

代码:

import turtle
import random
import time

s = turtle.getscreen()
turtle.screensize(canvwidth=400, canvheight=400)
t = turtle.Turtle()
t.pensize(0)
t.shape('square')
t.color("black")
t.speed(0)
t.penup()

def moveu(num):
    t.setheading(num)
    t.forward(20)
    

s.onkey(lambda : moveu(90), 'w')
s.onkey(lambda : moveu(270), 's')
s.onkey(lambda : moveu(180), 'a')
s.onkey(lambda : moveu(0), 'd')
    
s.listen()
Run Code Online (Sandbox Code Playgroud)

我还没有完成这个项目,但我遇到了一些问题。我想在turtle模块中创建一个游戏。但我不知道如何防止块向后移动。我见过其他人用过t.direction什么的。但我已经尝试过了,但它并没有真正奏效,也许我只是愚蠢而我做错了什么。如何防止正方形向相反方向移动?

python turtle-graphics python-3.x python-turtle

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

如何在 Python 脚本中执行 .ipynb 笔记本文件?

我有一个笔记本,需要在 Python 文件中调用。我知道在另一个笔记本中调用笔记本是使用 完成的%run ./NotebookName,并且在笔记本中调用 Python 模块可以使用 来完成import。那么如何在Python文件中调用notebook呢?

python jupyter-notebook

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

PySide2 等效于 PyQt5 的 loadUiType() 以在 UI 设计中动态混合

TL;DR:我想要一个直接替换 PyQt5 的loadUiType()功能的uic模块,它可以与 PySide2 和 Python 3.6+ 一起使用。


我想将 PyQt5 应用程序迁移到 PySide2。我使用的一个常见模式是,我在 Qt Designer 中创建用户界面设计,并动态加载生成的.ui文件作为扩展 Python 代码中 Qt 小部件的混合类,例如主窗口本身:

from PyQt5 import QtWidgets, uic

class Window(QtWidgets.QMainWindow, uic.loadUiType('design.ui')[0]):

    def __init__(self):
        super().__init__()
        self.setupUi(self)
        print(self.label.text())

app = QtWidgets.QApplication([])
window = Window()
window.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)

这意味着我可以放弃在命令行上将.ui设计编译为.pyPython 模块。更重要的是,混合模式让我可以通过self.name导入窗口小部件的范围内访问设计中定义的所有 Qt 窗口小部件,name在 Qt 设计器中指定的位置。

为了提供可重现的示例,这里有一个与上述 Python 代码一起使用的最小 Qt 设计文件,其中引用为design.ui

from PyQt5 import QtWidgets, uic

class Window(QtWidgets.QMainWindow, uic.loadUiType('design.ui')[0]):

    def __init__(self):
        super().__init__()
        self.setupUi(self) …
Run Code Online (Sandbox Code Playgroud)

python qt-designer python-3.x pyqt5 pyside2

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

如何隐藏包名称空间中的内部模块?

我的 Python 包,经过着色,终于可以工作了。但是,当我运行时dir(tinted),包中存在core.py和文件!sequences.py我只想将函数tint包含在包中。

电流输出dir(tinted)

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'core', 'sequences', 'tint']
Run Code Online (Sandbox Code Playgroud)

期望的输出dir(tinted)

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'tint']
Run Code Online (Sandbox Code Playgroud)

这是我第一次将包上传到 PyPi,所以如果我做错了什么,请原谅我。

有人知道怎么修这个东西吗?

python pip pypi

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

使用“importlib”仅从 Python 模块导入特定类

如何使用 Python 模块的路径仅导入特定类?

我需要使用文件路径从 Python 文件导入特定的类。我无法控制该文件,它完全在我的包之外。

文件.py:

class Wanted(metaclass=MyMeta):
    ...

class Unwanted(metaclass=MyMeta):
    ...
Run Code Online (Sandbox Code Playgroud)

元类实现与这里无关。不过,我要指出的是,它是我的包的一部分,我可以完全控制它。

导入示例:

spec = importlib.util.spec_from_file_location(name='Wanted', location="path_to_module/mudule.py")
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
Run Code Online (Sandbox Code Playgroud)

这有效,并且Wanted被导入。问题是这Unwanted也是进口的。事实上,只要给定任何name字符串值(包括空字符串),WantedUnwanted都会从模块中导入。

这与之前的示例具有相同的效果,其中WantedUnwanted均被导入:

importlib.util.spec_from_file_location(name='random string', location="path_to_module/mudule.py")
Run Code Online (Sandbox Code Playgroud)

我不是在寻找使用 ; 的特定解决importlib方案 任何合理的方式都可以。我将指出,在导入该类时,我不需要使用该类,我只需要进行导入,我的元类将处理其余的事情。

python metaclass python-import

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

强制Sphinx用Python文档字符串解释Markdown而不是reStructuredText

我正在使用Sphinx来记录python项目。我想在我的文档字符串中使用Markdown格式化它们。即使使用recommonmark扩展名,它也仅涵盖.md手动编写的文件,而不包括文档字符串。

我使用autodocnapoleonrecommonmark在我的扩展。

如何在我的文档字符串中使Sphinx解析markdown

python markdown python-sphinx

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

将 16 位 Tiff 图像转换为 8 位 RGB

我正在处理一些由 16 位.tiff图像组成的卫星图像。颜色编码为每通道 16 位。我想知道如何将这些图像转换为普通的 8 位 RGB 以进行进一步的 CNN 处理。

我试过 OpenCV( cv2.read('file',-1)) 和 PIL( read('file')),但这两个包无法识别和读取 16 位 tiff 图像。

python tiff

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