【发布时间】:2012-07-29 11:18:11
【问题描述】:
在 Python 中是否与这一行代码等效?
// C# just shows how class looks like
class MyClass {
public int A {get; set;}
public int B {get; set;}
}
// This is that one-line code in C#. Any pythonic way to do something like this?
// var x = MyClass() { A=1, B=2 } - "var" syntax sugar, at compile time it's == MyClass
MyClass x = MyClass() { A=1, B=2 }
编辑:也许我的问题不是那么精确。我的主要目标是不将参数传递给构造函数。
如何初始化许多类成员(它们的任意组合),而不将它们传递给构造函数,并且不使用所有默认值的构造函数。
编辑:谢谢你的答案,很抱歉让你困惑的问题。我只是想知道主题中问题的答案-什么是初始化类的属性子集而不在构造函数中明确编写它们的最佳方法(pythonic 方法)。
【问题讨论】:
-
不将它们作为参数传递给构造函数?
-
你问的是类创建还是实例创建?
-
您的问题不清楚。具体并告诉我们您想在哪里应用这种东西..以便我们可以给您更合适的答案
-
for k, v in {'A': 1, 'B': 2}: setattr(MyClass, k, v) -
曾经可以说一个具有 100 个属性的对象/类/结构,其任意子集可能具有值,这比无用更糟糕。如果您将其中一个对象传递给我,我可以合理地期望用它做什么?乔在下面给了你你所要求的,但我不确定你是否真的想要你所要求的。
标签: python class properties