string - 在cython中将int转换为str?
问题描述
关于如何在 Cython 中将 int 转换为字符串,我有一个非常简单的问题。我希望将可变数字连接到一个短语,例如
cdef str consPhrase = "attempt"
cdef int number = 7 #variable
cdef str newString = consPhrase + <str>number #so it should be "attempt7", "attempt8", etc.
但是,我不断收到错误声明
TypeError: Expected str, got int
我已经查看了如何在 Cython 中进行转换,它声称它与 < > 括号一起下降,那么为什么不将 int 转换为 str 呢?
我什至试过
cdef str makeStr(str l):
return l
cdef str consPhrase = "attempt"
cdef int number = 7
cdef str newString = consPhrase + makeStr(number)
但它会在同一行(cdef str newString = consPhrase + makeStr(number)
行)上引发相同的错误。那么,完成这个简单任务的最有效和正确的方法是什么?任何帮助,将不胜感激!
解决方案
最简单的方法就是将数据转换为字符串,就像在任何其他 python 代码中一样:
cdef str newString = consPhrase + str(number)
像您尝试做的那样进行转换是行不通的,因为str
它是一种映射到bytes
Python2 和unicode
Python3 中的 Python 类型。由于它可能是一个 unicode 字符串,因此没有像您尝试做的那样将整数转换为字符串的安全方法。
推荐阅读
- vb.net - Reportviewer VB.NET 关于开关表达式
- java - 如何在从另一个活动传递的字符串中添加文本并在 Textview 中显示结果文本
- java - 如何在 java 中的 setter 方法中执行计算?
- android - Native Script vue Sidekick 编译错误:AAPT:错误:资源可绘制/图标
- algorithm - 联合查找解决方案的时间复杂度
- javascript - js 使用选择选项中的属性更新动态表字段
- php - 无法在php中更新图像
- c# - Task.WaitAll 与 CancelationToken
- vue.js - Vue-cli3 vue-cli-service build --modern 不起作用
- jquery - 如何切换:悬停效果?