在Cython中连接字符串时出现语法错误

时间:2015-01-22 17:04:17

标签: python cython

我在cdef类(Cython语言)中有以下代码:

def toString(self):
    res = "lut= " + str(self._mm_np[0].lut) +
        "n1= "  + str(self._mm_np[0].n1) +
        "nlay= "+ str(self._mm_np[0].nlay) +
        "n3= "  + str(self._mm_np[0].n3)
    return res

当我尝试编译包含此代码的cython文件时,我收到以下语法错误: "预期标识符或文字"指向第一个' +'在字符串连接中。

我试图使用' \'而不是' +'没有成功.. 在Pyhton / Cython中连接字符串的正确方法是什么? 谢谢!

1 个答案:

答案 0 :(得分:1)

你错过了行继续运算符\

def toString(self):
    res = "lut= " + str(self._mm_np[0].lut) + \
    "n1= "  + str(self._mm_np[0].n1) + \
    "nlay= "+ str(self._mm_np[0].nlay) + \
    "n3= "  + str(self._mm_np[0].n3)
    return res

......但你真的不应该这样做。它被认为是不好的风格。

探索字符串的.format方法的用法;它将为该字符串提供位置参数,因此您不必连接

def toString(self): 
    return "lut={} n1={} nlay={} n3={}".format(
                str(self._mm_np[0].lut),
                str(self._mm_np[0].n1),
                str(self._mm_np[0].nlay),
                str(self._mm_np[0].n3))