我是 Python 的绝对新手(我来自 Java),我对类字段有以下疑问。
考虑这样的代码:
class Toy():
def __init__(self, color, age):
self.color = color
self.age = age
action_figure = Toy('red', 10)
好的,做了什么很清楚也很简单:
它正在定义一个玩具类。在构造方法中定义了两个字段以及如何设置字段值。最后(在“main”中)创建了一个新的Toy实例,传递构造函数调用中的字段值。
好的,很清楚......但我有一个疑问。在 Java 中定义同一个类我做这样的事情:
public class Toy {
private String color;
private int age;
// CONSTRUCTOR:
public Dog(String color, int age) {
this.color = color;
this.age = age;
}
}
好的,它很相似,但我发现了一个很大的不同。在我的 Java conde 中,我将类字段声明为构造函数方法之外的变量。在 Python 中,我直接在构造函数方法中定义类字段。所以这意味着在 Java 中我可以声明 n 个类字段并使用构造函数方法仅初始化这些字段的一个子集,例如:
public class Toy {
private String color;
private int age;
private String field3;
private String field4;
private String field5;
// CONSTRUCTOR:
public Dog(String color, int age) {
this.color = color;
this.age = age;
}
}
我还有field3、field4和field5字段,它们不会被我的构造函数初始化(以防我可以使用 setter 方法第二次设置它们的值)。
我可以在 Python 中做类似的事情吗?我可以在构造函数方法之外声明类字段吗?