python 相关问题

Python是一种多范式,动态类型的多用途编程语言,旨在快速(学习,使用和理解),并强制执行干净统一的语法。通常使用两个相似但不兼容的Python版本,Python 2.7和3.x.对于特定于版本的Python问题,请使用[python-2.7]或[python-3.x]标记。使用Python变体或库(即Jython,Pypy,Pandas,Numpy)时,请将其包含在标签中。

Python 在父类静态/类方法中获取子类

输出: 狗类(): def get_class(): 返回__类__ 类猫(): def get_class(): 返回__类__ 打印(Dog.get_class()) 打印(Cat.get_class()) 是: 输出: class Dog(): def get_class(): return __class__ class Cat(): def get_class(): return __class__ print(Dog.get_class()) print(Cat.get_class()) 是: <class '__main__.Dog'> <class '__main__.Cat'> 我想用一个子类来干燥我的代码。但输出: class BaseClass(): def get_class(): return __class__ class Dog(BaseClass): pass class Cat(BaseClass): pass print(Dog.get_class()) print(Cat.get_class()) 是 <class '__main__.BaseClass'> <class '__main__.BaseClass'> 如何更改第二种情况中的代码以获得与第一种情况相同的输出? 你就快到了: class BaseClass: @classmethod def get_class(cls): return cls class Dog(BaseClass): pass class Cat(BaseClass): pass print(Dog.get_class()) print(Cat.get_class()) <class '__main__.Dog'> <class '__main__.Cat'> 这里有一些不同的问题。 我们正在实现的逻辑就是“获取类”。如果您想专门从类开始执行此操作,那么无需执行任何操作,也没有理由在 BaseClass 或 Dog 或 Cat 内实现任何内容来获得该结果 - 因为您 已经有了. class BaseClass: pass class Dog(BaseClass): pass class Cat(BaseClass): pass print(Dog) print(Cat) __class__是一个特殊的局部变量,用于实现super()。它命名了定义方法的类,无论该方法是如何查找的,或者即使它被用作普通函数: >>> class x: ... def example(self): ... print(__class__) ... >>> class y(x): pass ... >>> x().example() <class '__main__.x'> >>> y().example() <class '__main__.x'> >>> x.example(42) <class '__main__.x'> 通常,不希望接收类实例的方法应该用 @classmethod 或 @staticmethod 装饰。这样,代码仍然可以与类或实例一起使用。 规则是: @classmethod - 使用类调用,第一个参数是该类本身;用实例调用,第一个参数是实例的类。参数应该在开始时包含一个以接收该参数。按照惯例,我们将该参数称为 cls。@staticmethod - 使用类或实例调用,不为调用添加任何参数。参数应该只列出将显式传递的内容。无装饰器 - 用类调用,不添加参数;使用实例调用时,会添加该实例。 这应该仅用于实例,因此应该有一个参数来接收实例参数。按照惯例,我们将该参数称为 self。尝试在没有装饰器或self的类中使用函数违反了标准期望。它尝试将类视为简单的名称空间。这不是他们的目的,即使认为它有点有效。 假设我们希望代码可以使用一个类(返回该类)或一个实例(返回该实例的类),则代码很简单:一个 @classmethod 修饰的方法已经接收了一个参数,该参数是在任何情况下,这正是我们想要的,因此我们只需返回即可。因此: class BaseClass: @classmethod def get_class(cls): return cls class Dog(BaseClass): pass class Cat(BaseClass): pass print(Dog.get_class()) print(Dog().get_class()) print(Cat.get_class()) print(Cat().get_class())

回答 2 投票 0

如何在函数内初始化预先写好的函数?

我有两个函数:一个用按钮打开某个窗口,另一个函数执行我需要的操作并关闭窗口。 如果我在第一个函数中拒绝第二个函数,它就可以正常工作,但是...

回答 1 投票 0

为什么我的主窗口无法在屏幕上正确居中?

我试图将主窗口置于屏幕中央,但是两种常见方法都不起作用。他们都把它放得太低了,而且宽度有点偏离中心。这是我尝试过的: 哇...

回答 2 投票 0

在 CUDA GPU 上运行 Pytorch 量化模型

我很困惑是否可以在 CUDA 上运行 int8 量化模型,或者只能使用 fakequantise 在 CUDA 上训练量化模型以部署在另一个后端(例如 CPU)上。 我

回答 2 投票 0

不同频率的石斑鱼

我正在尝试使用 pandas 类 Grouper 按日期对数据进行分组。 我的数据是每周的,我可以轻松地按月对其进行分组,如下所示: data.groupby(pd.Grouper(freq = 'M').sum() 我也想...

回答 1 投票 0

如何接收非原始对象作为查询参数?

我正在尝试接收一个重要的查询参数对象。目前我正在通过 json 编码的字符串执行此操作,因为对象似乎被假定以 fastapi 形式到达主体,所以我必须这样做

回答 1 投票 0

如何在Python中抓取Instagram帐户信息

我正在尝试用Python做一些非常简单的事情,但不知何故它非常困难。我想做的就是写一个 python 脚本来记录 Instagram 用户关注的人数,...

回答 7 投票 0

Python 到 Redis 集群的连接超时

如标题所示, 我正在努力使用 redis.asyncio 库与 Redis 集群建立连接(它与主/从配置完美配合)。我创建了一个简单的测试来检查

回答 1 投票 0

随机附加的未使用添加错误

所以今天我在做一个涉及加密的Python测试,我做了一些调试。但这些都不起作用。你们能帮我吗?这是整个作品: 随机导入 LONEK = 输入(“类型...

回答 1 投票 0

导入模块时出现 Python ModuleNotFoundError

在尝试将 MongoDB 配置从 config.py 导入到位于 routers 文件夹中的routes.py 文件时,我遇到了 ModuleNotFoundError。这是导致 i...

回答 1 投票 0

/registration/register/'email'出现 KeyError 错误

我有一个问题。单击链接 http://127.0.0.1:8000/accounts/register / 时,会在 /accounts/register/ 处返回 KeyError 错误 '电子邮件'。我在 pycharm 中用 django 编程。 我想指出...

回答 2 投票 0

我的 Python SQLite 代码容易受到 SQL 注入吗? [重复]

这个语句容易注入吗?我尝试将其转换为准备好的语句,但遇到了很多麻烦。 导入cgi 导入sqlite3 形式 = cgi.FieldStorage() 用户 = 表单['用户名'].

回答 1 投票 0

为什么 onClick 行为异常并且有时不显示其背后的数据?

打字稿新手,现在已经使用它 2 天了,主要是为我的 Streamlit 应用程序构建自定义组件。我创建了下面的导航栏,自定义组件是一个选项卡,可以是

回答 1 投票 0

使用 sum() 连接元组

从这篇文章中我了解到您可以使用 sum() 连接元组: >>> 元组 = (('你好',), ('这些', '是'), ('我的', '元组!')) >>> sum(元组, ()) (‘你好’、‘这些’、‘是’、‘...

回答 6 投票 0

想要将 3 个组合字符串分成单独的字符串

我无法将结果与drive.getList()分开 我使用 pyDrive2 获取主文件夹中所有文件夹的名称: folded_list = 驱动器.ListFile( {'q': "'"+parent_directory_id+&qu...

回答 1 投票 0

ModuleNotFoundError:没有名为“streamlit.cli”的模块; “streamlit”不是一个包

这是我第一次使用Streamlit,我已经使用它安装的pip install Streamlit安装了sreamlit。尝试使用streamlit run pop.py运行python文件,它给了我以下错误: 中:...

回答 1 投票 0

PyPI - 允许使用不同名称导入模块

一年后编辑: 我不知道为什么这篇文章没有关闭,因为我完全不知道 python 包的正确包结构:) 对于任何想知道的人,我正在建立我的项目

回答 1 投票 0

如果提供工具,Google Gemini Pro 不会提供响应

如果没有提供工具,Google Gemini Pro 也能正常工作 例如: 将 google.generativeai 导入为 genai def 乘法(a:浮点, b:浮点): """返回 a * b。"""

回答 1 投票 0

如何在Python中播放背景音乐并执行其他功能?

我正在使用playsound模块来播放background_loop.mp3文件,但我无法调用其他函数或运行脚本的其他部分,直到它完成播放。 有一种方法可以调用函数并运行...

回答 1 投票 0

使用 SKLearn KMeans 和外部生成的相关矩阵

我从外部源收到相关文件。这是一个相当简单的文件,如下所示。 可以在此处找到示例 csv https://www.dropbox.com/scl/fi/

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.