在C ++中,类的构造函数允许从另一个实例构造实例。例如
C::C(const C & c) {
bala...;
cc = c.cc;
}
在Python中,执行此操作的类似方法是什么?我该怎么用
c1 = C()
c2 = C(c1)
答案 0 :(得分:1)
我们在python中定义变量时没有提到类型。例如:如果x=4
,您始终可以将x设置为其他内容x="shasha"
。没问题。
注意我们不能在python中重载方法。
回到你的问题:
假设您了解python内存管理以及reference
和actual 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.
请注意,您始终可以使用= operator
y = x
将一个对象复制到另一个对象,但它实际上不会复制任何内容。现在,引用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