我已经读过可以在Python中向现有对象(即,不在类定义中)添加方法.
我知道这样做并不总是好事.但是人们怎么可能这样做呢?
我绝对是 Python 新手(我来自 Java),我对类字段有以下疑问。
考虑这样的代码:
class Toy():
def __init__(self, color, age):
self.color = color
self.age = age
action_figure = Toy('red', 10)
Run Code Online (Sandbox Code Playgroud)
好的,做了什么很清楚而且很简单:
它正在定义一个玩具类。在构造方法中定义了两个字段以及如何设置字段值。最后(在“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;
}
}
Run Code Online (Sandbox Code Playgroud)
好吧,它很相似,但我发现了一个很大的区别。在我的 Java conde 中,我将类字段声明为我的构造函数方法之外的变量。在 Python 中,我直接在构造函数方法中定义类字段。所以这意味着在 Java 中我可以声明 n 个类字段并使用构造函数方法只初始化这个字段的一个子集,例如这样的:
public class Toy {
private String color;
private int age;
private String field3;
private …Run Code Online (Sandbox Code Playgroud)