从Python中的另一个实例获取实例

Instance from another instance in Python

本文关键字:实例 获取 另一个 Python      更新时间:2023-10-16

在c++中,类的构造函数允许从另一个实例构造一个实例。例如

C::C(const C & c) {
    bala...;
    cc = c.cc;
}

在Python中,类似的方法是什么?如何使用

c1 = C()
c2 = C(c1)

?

在python中定义变量时不提及类型。例如:如果是x=4,则可以将x设置为x="shasha"。没问题。

注意python中不能重载方法

回到你的问题:

假设您了解python内存管理以及referenceactual value之间的区别,您可以在python中使用deepcopy特性:

import copy
class A(object):
    def __init__(self):
         self.a=10
x = A()
y= copy.deepcopy(x)
x.a=15
print(y.a)  # prints 10.

注意,你总是可以像y = x一样使用= operator将一个对象复制到另一个对象,但它实际上不会复制任何东西。现在引用y和x实际上都指向同一个实例。也就是说,如果你使用其中一个更改了任何内容,它将自动反映到另一个:

class A(object):
    def __init__(self):
         self.a=10
x = A()
y = x
x.a=15
print(y.a)  # prints 15.

你也可以创建一个虚拟的构造函数,如下例所示:

class A:
    def __init__(self):
        self.a=10
    def dummy_constructor(self):
        temp = A()
        temp.a = (self.a + 20 - 5 )*100/10
        return temp

x=A()
y=x.dummy_constructor()
print(y.a)   #250
print(x.a)   #10