因为变量指向python中的对象,我猜,它是一个引用。假设a
是一个字符串,我可以在python中完全解释a.lower()
作为指向a->lower()
的指针的C / C ++ char*
的替代吗?我知道这些是不同的语言,但试图将类似的概念联系起来,以便更容易理解。
编辑:假设我有一个实现字符串较低的类。
答案 0 :(得分:3)
char*
没有lower()
方法。您的比较无效。
调用str.lower()
就像依次在每个字符上调用tolower(3)
并返回新字符串一样。
答案 1 :(得分:2)
假设我有一个实现字符串较低的类 方法
但是很难猜出该方法的实现方式。
您在C ++ / Python字符串中可能存在的主要区别是就地修改:Python字符串不可变,而C ++字符串则是。所以你的string.lower()C ++方法可能正在改变字符串,而不是返回一个新的字符串,这是Python版本所做的。
E.g。 Boost字符串库有一个to_lower()方法,可以进行修改(http://www.boost.org/doc/libs/1_47_0/doc/html/boost/algorithm/to_lower.html)