相关疑难解决方法(0)

将方法添加到现有对象实例

我已经读过可以在Python中向现有对象(即,不在类定义中)添加方法.

我知道这样做并不总是好事.但是人们怎么可能这样做呢?

python oop methods monkeypatching

596
推荐指数
13
解决办法
22万
查看次数

我可以在构造函数方法之外声明 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)

python python-3.x python-object

7
推荐指数
2
解决办法
8287
查看次数