我是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)错误吗?
最佳答案
线路
cstring1 = copy.copy(cstring2)
仅更改名为
cstring1
的局部变量,而不更改名为obj1
的外部作用域中的变量。查看this other stackoverflow question了解更多信息。