在 Cython 中连接字符串时出现语法错误
Syntax error when concatenating a string in Cython
我在 cdef class(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 文件时,出现以下语法错误:
"Expected an identifier or literal" 指向字符串连接中第一个“+”的位置。
我尝试使用“\”代替“+”,但没有成功。
在 Pyhton/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
...但你真的不应该那样做。这被认为是糟糕的风格。
探索 .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))
我在 cdef class(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 文件时,出现以下语法错误: "Expected an identifier or literal" 指向字符串连接中第一个“+”的位置。
我尝试使用“\”代替“+”,但没有成功。 在 Pyhton/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
...但你真的不应该那样做。这被认为是糟糕的风格。
探索 .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))