问题标签 [python-object]

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 回答
50 浏览

python - 关于多继承、动态类创建和实例化的问题

你好我有以下情况:

  • 从两个父类继承的特殊类
  • 需要在运行时根据我开始从数据库读取数据时获得的一些信息来定义最专业的类。

我定义了以下代码来处理链中所有类的创建:

然后在运行时获得 doc_name 并尝试创建一个新类。此时我可能没有所需的参数doc_idlocation,但我需要类类型。

我收到以下错误:

我知道这样做的原因是因为 __init__() 将在类实例化期间被调用,但我认为该类型只会创建一个新类型而不是立即实例化一个。所以我的问题是,此时是否有办法推迟实例的实例化。

提前感谢您对此提供的任何帮助和提示。

——医学博士。

0 投票
1 回答
85 浏览

python - 类继承和实例化 - 对 __init__() 和 __new__() 方法的内部调用之间的混淆

这是我之前发布的问题的后续问题,该问题已通过我收到的答案部分解决。

  • 场景是我有 1 个在运行时定义的类,它继承自基于以下类型定义的类:MasterData 或 Transaction,而后者又从 BusinessDocument 继承。
  • BusinessDocument 类需要从可通过外部模块获得的类Thing继承。

已实现以下代码以创建链中的所有类:

在运行时,当我得到 doc_name 并得到一个新类,但是当我尝试实例化时。

调用 invoice_cls 的 type() 和mro () 方法可以得到以下信息:

但后来我得到一个与该方法相关的异常__new__()

然后,如果我尝试在没有参数的情况下进行实例化调用,我会得到一个与该__init__()方法相关的不同异常,这里是完整的:

这只发生在我从“事物”类继承时。如果我删除继承,代码运行得很好。看起来我弄乱了类层次结构中的实例化序列。

0 投票
0 回答
17 浏览

python - “LAB”对象没有属性“audioFilePath”

我对这段代码有疑问:

当我运行它时:

解决办法是什么?我尝试在不使用 OOP 的情况下编写上述代码,它对我来说很好。

0 投票
0 回答
68 浏览

python - python对象属性随机删除自身

我对 python 对象有一个问题,我在其中同时创建和迭代许多对象。

对象总是使用正确的属性创建的,但是当我遍历这些对象时,我会检查对象中的某个属性,这个特定属性会随机从对象中删除,然后我得到一个错误,即对象没有这个属性.

代码:

错误:“TrackableTruck”对象没有属性“vehicle_status”

请注意,这段代码在 95% 的情况下都适用于我,尽管所有对象都具有相同的结构,但随机对象会发生这种情况。

经过大量调试后,我无法理解为什么会发生这种情况。该对象已正确创建,如果我在迭代之前打印它确实具有“vehicle_status”属性但在迭代后该属性从对象中消失

例如:

创建时的对象:{“object_ID”:55,“vehicle_type”:“truck”,“OTS”:“2020-03-10 16:07:16”,“lane_ID”:2.0,“vehicle_status”:“ALIVE”}

迭代后的对象:{“object_ID”:55,“vehicle_type”:“卡车”,“OTS”:“2020-03-10 16:07:16”,“lane_ID”:2.0}

我希望比我更了解python的人可以帮助我。谢谢

编辑对象定义:

检查和更改车辆状态的代码:

对象创建代码:

0 投票
1 回答
53 浏览

python - 为什么你不能命名一个在函数中创建的对象,与它在 Python 中的类名完全相同?

我正在 Jupyter 笔记本中编写 Black Jack 游戏,为此我有一个“玩家”和一个“经销商”类以及一个基本上运行整个游戏的函数 (BlackJack())。

当我尝试创建与类本身同名的类对象时发生错误:

错误信息:

但是,如果我将类对象命名为不同的名称或将它们命名为相同的名称,但在函数之外没有错误:

或者

是否只是因为在一个函数中 Python 认为我想在我分配变量之前给它自己分配一个变量 (dealer = Dealer()),即使它们实际上并不相同,因为一个是变量并且其他是类?那么在这种情况下,Python 是否只是忽略了例如dealer() 是一个类而不是变量“dealer”这一事实?

提前致谢!

PS:我使用 Python 3.7.4

0 投票
1 回答
54 浏览

python - 如何将用户定义的 python 对象转储到 json 文件?我所说的对象是指实际的对象,而不是它们的属性

所以我有两个用户定义的python类,如下所示

现在我有一个名为 cells 的二维列表,它已定义,看起来像这样Click me。

它有点乱,但您可以看到它是一个 16 x 16 矩阵,用于存储如上定义的对象 od 单元

不,我想将此二维数组存储在 json 文件中,这就是我正在做的

这是我收到的终端错误 点击链接查看

0 投票
1 回答
94 浏览

python - 具有相同值和类型的不可变对象不引用相同的对象

我一直在阅读 Python 数据模型。以下文本取自此处

类型几乎影响对象行为的所有方面。甚至对象标识的重要性也在某种意义上受到影响:对于不可变类型,计算新值的操作实际上可能返回对具有相同类型和值的任何现有对象的引用,而对于可变对象,这是不允许的。例如, aftera = 1; b = 1a 可能b会或可能不会引用具有值 1 的同一对象,具体取决于实现,但 after和c = []; d = []保证会引用两个不同的、唯一的、新创建的空列表。(请注意,将相同的对象分配给和。)cdc = d = []cd

因此,它提到,对于不可变类型,计算新值的操作实际上可能返回对具有相同类型和值的现有对象的引用。所以,我想测试一下。以下是我的代码:

在这里,我做了一个操作来计算一个新的元组,它的值和类型与a. 但是我得到了一个引用不同 ID 的对象。这意味着我得到了一个引用不同内存的对象。为什么是这样?

0 投票
0 回答
54 浏览

python - 使用用户输入在另一个 python 文件中打印具有属性的 Python 类对象

主要 Python 代码类:main.py

我想创建一个 python 文件,其中包含基于用户输入创建的实例集合,如下所示:

对象.py

我的代码是通过 CLI 使用的 python 脚本。因此,我正在考虑使用 Python CLI 包(例如 PyInquirer 或 PySimpleGUI)通过提出问题并使用答案来创建 objects.py 文件来获取用户输入,如上所示。(我需要这个 object.py 文件来实现我的代码中的另一个复杂功能)

使用 PyInquirer 的代码 - 在 main.py 中使用此代码:

我希望格式与上面在 object.py 中显示的完全一样,而不是直接打印答案。我正在寻找有关如何使用用户输入动态创建 objects.py 的输入。任何建议都受到高度赞赏。也欢迎任何 PyInquirer 的替代品!谢谢!

0 投票
1 回答
18 浏览

python - 如何使用用户输入的内容调用对象的属性?

'''

'''

这不起作用,因为 Python 正在寻找一个名为 'attribute_to_find' 的 'python_object' 的属性,这就是我的想法。

我希望用户能够输入一个属性并让程序打印出类实例中该属性的值,id 为“10021”(“id”是“python_object”的另一个属性)

有谁知道我该怎么做?

谢谢 :)

0 投票
1 回答
48 浏览

python-3.x - 如何从显示中忽略重复的对象值

我有一个具有 3 个属性 a、b 和 c 的测试类。已经创建了 3 个类的实例,并为属性设置了适当的值,假设 'a' 属性始终是唯一的,并且当两个具有相同 'b' 值的对象将始终具有相同的 'c' 值时。如果看到此类对象,则该对象的属性“c”的显示将被省略。

上面的代码让我输出如下。

[测试(1, abc, def), 测试(2, yyy, xxy)]

预期的输出是从对象中仅省略属性 c。

[test(1, abc, def), test(2, yyy, xxy),test(3, yyy)]

请帮忙!