在Python中复制对象?

2024-05-19 19:17:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,所以我尝试用C编写一个类来模拟字符串函数:

class CString:

  def __init__(self,str):
        self.value=[]
        self.value.extend(list(str))

def strcpy(cstring1,cstring2):
      import copy
      cstring1=copy.copy(cstring2)

def puts(cstring1):
    print ''.join(cstring1.value)

但strcpy似乎不起作用:

>>obj1=CString("Hello World")
>>obj2=CString("Hai World!")
>>puts(obj1)
Hello World!
>>puts(obj2)
Hai World!
>>strcpy(obj1,obj2)
>>puts(obj1)
Hello World!

我分配副本。副本(cstring2)错误吗?


Tags: selfhelloworldvaluedefcopystrhai
2条回答

尽管不能在中修改输入参数cstring1

def strcpy(cstring1,cstring2):
      import copy
      cstring1=copy.copy(cstring2)

你还可以做其他事情来实现你的目标。

首先,可以将strcpy作为string类的一部分,并让该成员函数更新自己的str元素。

其次,您可以提供CStringset和get函数。这些函数可以直接用于将一个字符串复制到另一个字符串,也可以由执行字符串复制的成员函数使用。

Python是一种有趣的语言。它包含许多元素,使它看起来像是C或Perl这样的常规命令式语言,并且您可以构造许多看起来像C的代码。就Python的纯粹性而言,我们将指导您不要像用C编程一样用Python思考

我建议重新创建strcpy这样的东西,最好是通过解决la Python问题来完成。首先,一个字符串可以简单地替换另一个字符串。

祝你好运。

线路

cstring1 = copy.copy(cstring2)

只改变名为cstring1局部变量,而不改变名为obj1的外部作用域中的变量。

查看this other stackoverflow question了解更多信息。

相关问题 更多 >