从Python中的另一个实例获取实例
Instance from another instance in Python
在c++中,类的构造函数允许从另一个实例构造一个实例。例如
C::C(const C & c) {
bala...;
cc = c.cc;
}
在Python中,类似的方法是什么?如何使用
c1 = C()
c2 = C(c1)
?
在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.
注意,你总是可以像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
相关文章:
- 无法使用 SWIG 在 Python 中实例化C++类(获取属性错误)
- 如何在没有实例的情况下获取非静态方法的类型?
- 重载运算符*以获取对另一个类的实例的引用
- 从 c++ 中的实例化进程获取输出的可靠方法是什么?
- c++如何获取模板函数实例的地址
- 在C++中获取类实例的名称
- 获取错误:在抛出"std::bad::alloc"的实例后终止调用 what(): std::bad_alloc
- C++ 获取线错误。如何避免此错误?"没有重载函数"getline"的实例
- 如何在不创建实例的情况下获取类的方法成员的类型?
- 获取具有同一分隔符的多个实例的字符串的子字符串
- 获取派生模板实例化的运行时类型
- vulkan vulkan.hpp从对象实例中获取opbject类型
- 如何在 Clang 中获取模板化类的实例化 CXXRecordDecl?
- 在模板实例化期间获取原始结构/类名C++
- 从知道其结构类型的实例中获取值
- 获取继承的实例化模板的类型
- 如何在不引起实例化的情况下获取功能模板的签名
- ACE在同一PC上具有多个应用程序实例 - 仅首先获取消息
- 如何从向量中获取真实的类实例名称
- 从Python中的另一个实例获取实例