我是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
你还可以做其他事情来实现你的目标。
首先,可以将
strcpy
作为string类的一部分,并让该成员函数更新自己的str
元素。其次,您可以提供
CString
set和get函数。这些函数可以直接用于将一个字符串复制到另一个字符串,也可以由执行字符串复制的成员函数使用。Python是一种有趣的语言。它包含许多元素,使它看起来像是C或Perl这样的常规命令式语言,并且您可以构造许多看起来像C的代码。就Python的纯粹性而言,我们将指导您不要像用C编程一样用Python思考
我建议重新创建strcpy这样的东西,最好是通过解决la Python问题来完成。首先,一个字符串可以简单地替换另一个字符串。
祝你好运。
线路
只改变名为
cstring1
的局部变量,而不改变名为obj1
的外部作用域中的变量。查看this other stackoverflow question了解更多信息。
相关问题 更多 >
编程相关推荐