问题标签 [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 投票
0 回答
22 浏览

python-3.x - Python对同一类的方法使用多处理

我需要一些关于 python 多处理模块的帮助。我正在使用 Python3.6.6。我的代码结构有点像这样:

我可以使用进程中的对象调用同一类的方法吗?我希望这两个功能彼此独立运行。此外,当我运行它时,我只看到正在打印“已发送消息”。在 receive_data() 函数中,我有 print("Message received") 但它从不打印。当我评论代码时

我看到正在打印“收到消息”。有什么我想念的吗?

0 投票
0 回答
929 浏览

python-3.x - 当我尝试获取方法时,为什么我得到''staticmethod' object is not callable'?

我尝试让用户可以选择使用哪个函数来上课。

片段 1

像这样的东西:

但是,我得到

当我删除 时@staticmethod,它可以工作。为什么会这样?我想如果没有装饰器,第一个参数将永远是selfor cls为什么片段 1 不起作用?

片段 2

然而,这个有效:

0 投票
2 回答
446 浏览

python - 如何在 sympy 中扩展 Symbol 类?

我无法在 sympy 中扩展 Symbol 类。这可能是一般类扩展的结果,也可能是这个特定的“符号”类的问题。

我想扩展 Symbol 类,使其具有一个名为“boolean_attr”的附加属性,它是一个 True/False 属性。这模拟了我正在尝试做的事情:

这似乎按预期工作:

所以,当我在 Sympy 中尝试这个时,我会这样做:

但这不起作用:

如何在 sympy 中向 Symbol 类添加属性?谢谢。

(另外,我应该提到这可能是一个xy 问题,而我并不知道。我想知道如何向类添加属性,我的问题假设扩展类是最好的方法。如果这是一个不正确的假设,请告诉我)

0 投票
1 回答
94 浏览

python - 为什么在python类中设置方法在调用时不传递self?

如果我写这个:

会爆炸说:

为什么会这样?(如果 xa 没有参数,那么它可以工作,打印 3,但是我无法访问 self)。

这是出于测试目的,而不是实际的生产代码

0 投票
1 回答
131 浏览

python - 如何将生成器添加到 Sympy Poly 对象?

我正在为我的 sympy 代码编写一些测试,自然我需要比较两个 sympy 矩阵。每个矩阵都包含类型的对象Poly作为其条目(实际上,它包含我创建的扩展类的Poly类的对象,但这不应该有所作为)。

问题是,当我尝试在测试中比较这些对象时,即使表达式相同,生成器也不同,即使它们相同,也会产生失败的测试。

例如:

我的问题是如何使发电机相等。如何将生成器添加到实际输出中?或者,让生成器远离预期输出?

由于gens属性是一个元组,所以这很困难,因为我不能只向gens属性添加一个元素:

也许我可以单独比较表达式,但这对我来说似乎很冒险(除非有更多经验的人可以说服我)。

我如何比较这两件事?

0 投票
2 回答
671 浏览

python - 如何在python中验证类属性?

我一直在尝试验证用户可以在框架样式设置中创建的类。我可以通过以下方式确保子类中存在类属性:

这导致以下结果Exception

s我还可以在创建类时使用装饰器检查类属性的类型,如下所示:

导致:

这对于最终检查类属性很有用。但这会导致冗长的类定义,其中每个子类都必须进行修饰。

有没有办法验证s基类中的类属性(在示例中)?最好不要以过于冗长的方式?

0 投票
1 回答
1626 浏览

python - 更改从 CSV 上传的 Pandas DataFrame 上的数据类型 - 主要是 Object 到 Datetime

我正在处理从 CSV 上传的数据框,我尝试更改在 CSV 文件中键入的数据并保存它,但由于某种原因它不允许我保存它,因此当我将它上传到 Pandas 时,日期和时间列显示为对象。我尝试了几种方法将它们转换为日期时间,但没有取得很大成功:

1)df['COLUMN'] = pd.to_datetime(df['COLUMN'].str.strip(), format='%m/%d/%Y') 给我错误:

AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas

2) 在开始时定义 dtypes,然后在read_csv命令中使用它 - 也给了我一个错误,因为它不接受 datetime,而只接受 string/int。

有的列我想有日期的datetime格式,比如:2019/1/1,有的时间:20:00:00

您知道将这些数据类型对象列转换为日期或时间的有效方法吗?

0 投票
5 回答
13460 浏览

python - 我可以在构造函数方法之外声明 Python 类字段吗?

我是 Python 的绝对新手(我来自 Java),我对类字段有以下疑问。

考虑这样的代码:

好的,做了什么很清楚也很简单:

它正在定义一个玩具类。在构造方法中定义了两个字段以及如何设置字段值。最后(在“main”中)创建了一个新的Toy实例,传递构造函数调用中的字段值。

好的,很清楚......但我有一个疑问。在 Java 中定义同一个类我做这样的事情:

好的,它很相似,但我发现了一个很大的不同。在我的 Java conde 中,我将类字段声明为构造函数方法之外的变量。在 Python 中,我直接在构造函数方法中定义类字段。所以这意味着在 Java 中我可以声明 n 个类字段并使用构造函数方法仅初始化这些字段的一个子集,例如:

我还有field3field4field5字段,它们不会被我的构造函数初始化(以防我可以使用 setter 方法第二次设置它们的值)。

我可以在 Python 中做类似的事情吗?我可以在构造函数方法之外声明类字段吗?

0 投票
1 回答
310 浏览

python - Difference between calling __init__() of build-in class and __init__() of user-defined class

I am learning python classes and could not understand below behavior:

In below example, I am extending built-in str class:

In below example, I am extending a user-defined class Fraction:

Why do we need to give self as argument in 2nd example in calling __init__ of super class, while there is no need to give self in calling str's __init__.

0 投票
1 回答
62 浏览

python - Get a reference to an object

I am trying to create a class that can be given any object on construction and then will list all of that object's callable methods in an interactive prompt. I am using the PyInquirer module for the interactive prompt, and the inspect module to get all the methods of the given object.

I have so far succeeded in dynamically building the prompt for any given object, but my program gives the error Foo() takes 0 positional arguments but 1 was given when attempting to call one of the methods from the prompt.

I think the reason it crashes is that at the time of execution there are no more references to the object, so its reference count is at zero and the object is freed.

If I could get the class to keep hold of its own reference to the object, then this will solve the problem. For example

But this is invalid python.

How do I get a reference to the object (or manually increment the reference count, and manually decrement it in the __del__ function)?

Full source code for ObjectMethodTerminal.py can be found here https://gitlab.com/snippets/1939696