问题标签 [python-class]

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.

0 投票
1 回答
210 浏览

python - 从 Tkinter Python 中的浏览按钮设置条目值

我在 Python 中不是很好,尤其是在使用类时。我编写此代码以使用浏览按钮设置条目值,问题是这样我应该为每个按钮创建一个浏览方法。有没有更简单的方法来解决这个问题?

谢谢!

0 投票
1 回答
75 浏览

python - 使用用户输入实例化类

我刚刚开始学习课程。在我正在学习的示例中,我注意到所有被实例化的东西是如何被硬编码到示例中的。我想通过用户输入尝试弄清楚是否可以在不必这样做的情况下进行实例化。在第 74/75 行中,我的期望是print(RecordID_map_PilotID[valUE].flownhours)打印出我选择记录特定实例的小时数。相反,我遇到了以下讨厌的错误:

谁能帮我理解为什么我打算用 Python 做的实际上不起作用?谢谢!

0 投票
0 回答
37 浏览

python-3.x - Python 类,运算符重载

最近在接触 Python 类的概念时,我发现了这个观察结果并且无法理解。

当我尝试以交互方式(Python 控制台)从下面的类中创建实例时,我也得到了Finding __len__输出中的行。

但是将其作为顶级模块运行,不会在输出中添加此附加行。

有人可以帮我理解,为什么Finding __len__输出会以交互方式显示。

下面是一个交互式输出,

0 投票
2 回答
42 浏览

python - Python - 从 main 导入类函数/方法以在另一个文件中使用

我有两个文件 - main.py 和 uploadfile.py。Main.py (GUI) 接受用户输入,并将其提供给 uploadfile.py 进行处理。我from uploadfile import Uploader在 main 中有一个条目,允许 main 与 uploadfile 对话。

我需要进行错误处理,errorfunc如果出现错误,我需要从uploadfile.py 调用驻留在main.py 中的内容(这是为了显示一个带有相关错误的警报窗口)。

主文件

上传文件.py

抱歉,如果此代码不完整,主要和上传文件相当大,无法完整发布。我会很感激知道我会这样做的方式(调用 main 中的类方法/函数)。请注意,尝试from main import ErrorHandling会导致 main 不再运行并出现错误cannot import name Uploader from uploadfile

0 投票
1 回答
649 浏览

pytorch - Pytorch nn.Module 的派生类无法通过 Python 中的模块导入加载

将 Python 3.6 与 Pytorch 1.3.1 一起使用。我注意到当整个模块被导入另一个模块时,一些保存的 nn.Modules 无法加载。举个例子,这里是一个最小工作示例的模板。

当我直接在 shell 中运行它时,整个文件工作得很好。但是,当我想使用该类并使用此代码将神经网络加载到另一个文件中时,它会失败。

错误读取AttributeError: Can't get attribute 'NN' on <module '__main__'>

在 Pytorch 中加载保存的变量或导入模块是否与其他常见的 Python 库不同?一些帮助或指向根本原因的指针将不胜感激。

0 投票
0 回答
59 浏览

python - 相互调用并且必须继承其父级属性的嵌套类/函数

我有一个相当奇怪的场景,我无法理解正确的解决方案。我正在开发一个具有多种功能来执行某些操作的项目:

  • 这些函数是相互关联的,需要能够相互调用(并继承其父对象的参数)。
  • 每个操作都应该是可扩展的,并且能够添加新功能。
  • 每个操作都应该有一个默认函数。

让我举一个简单的例子。考虑一个mymath可以执行add和的类multiplymultiply可以通过简单的乘法或通过迭代调用add函数来执行(让我们假设+运算符不存在以证明函数需要能够相互调用的要求)。这是使用嵌套类的示例:

(请不要因为使用__new__. 而杀了我。我的实际项目代码中有一些条件语句来处理不同的场景。如果您有更多 Pythonic 替代方案的建议,请告诉我 - 我可以修改它们以满足我的需要) .

代码更容易扩展,但我有一个范围问题。为了解决范围问题,我将整个对象 ,obj传递给每个函数。这有效,但它很混乱。(在建议我应该只复制父函数的参数并实例化新对象之前,我的实际项目非常复杂,有很多参数,这会影响性能)。

我在这里错过了什么?我觉得有一个简单的解决方案就在我的眼皮底下,但我一直盯着我的代码很长时间,以至于我无法弄清楚。

编辑 2020-05-04eval从示例中删除了调用。我不知道使用getattr. 我仍然不确定如何处理范围问题。

编辑 2020-05-05我把事情分成子类。这更符合我的最终目标。将向用户提供_N要扩展的类,并且代码将mymath在运行时包含在我的主类中。

不过,我仍然无法找到解决范围界定问题的好方法obj。想法?

0 投票
4 回答
244 浏览

python - 如何装饰一个类,以便我能够在运行时更改类的属性

我想装饰一个类,这样我就可以在装饰器函数中访问 ssid 的值并向该类添加一个新属性。因为新属性需要 ssid 的值。

0 投票
2 回答
358 浏览

python - Python中的分组相关常量

我正在寻找一种pythonic方法来在单个文件中定义多个相关常量以在多个模块中使用。我想出了多种选择,但它们都有缺点。

方法 1 - 简单的全局常量

这是简单而通用的,但有一些缺点:

  • _RESOURCE必须附加到所有常量名称以提供上下文
  • 在 IDE 中检查常量名不会显示其他常量值

方法 2 - 枚举

这解决了第一种方法的问题,但这种解决方案的缺点是需要使用.value才能获得字符串表示形式(假设我们需要字符串值而不仅仅是一致的枚举值)。未能追加.value可能会导致在运行时难以调试问题。

方法 3 - 类变量

这种方法是我最喜欢的,但它可能会被误解——类是被实例化的。虽然使用类的实例而不是类本身不会影响代码的正确性,但我想避免这种浪费。

这种方法的另一个缺点是这些值实际上并不是恒定的。任何代码客户端都可能更改它们。

是否可以防止类被实例化?我是否错过了一些将密切相关的常量分组的惯用方式?

0 投票
0 回答
141 浏览

python - 是否有任何理由在 Python 中使用 collections.namedtuple 而不是 typing.NamedTuple?

collections.namedtuple在一些代码中使用过,但现在我看到在 Python 3.6 中有一个新的typing.NamedTuple基类以新的类样式可用。它似乎还使类型提示可用于元组中的命名索引。

collections.namedtuple除了与旧代码的兼容性之外,是否有任何理由在新编写的代码中继续使用旧的(来自 Python 2.6)?

即是否有性能优势,是否使用更少的内存等?

0 投票
6 回答
3999 浏览

python - 为什么调用方法时会出现 AttributeError?

在这段代码中,有一个Person类有一个属性name,它在构造对象时被设置。

它应该这样做:

  1. 创建类的实例时,属性被正确设置
  2. 调用该greeting()方法时,问候语会说明分配的名称。

它返回了错误:

AttributeError:“str”对象没有属性“greeting”