我遇到了一个无法解释的奇怪问题。我有一些代码是在笔记本电脑上用PyCharms编写的,并且已经对其进行了彻底的测试(我认为)。我现在已迁移到Ubuntu环境,设置了我的virtualenv,安装了我的模块,并开始了测试...
在PyCharms和Ubuntu中进行相同的测试,我得到两个无法解释的单独结果。我需要Ubuntu版本才能工作,但是当PyCharms和那里的解释器一直都不在乎时,看不到为什么它不喜欢我的Tuple作业。
Ubuntu环境:使用Python 3.6.5 Windows 10环境:使用Python 3.6.5(通过Python下载)
我的脚本在这里失败:
if something[7] is None:
something[7] = "N/A"
来自Ubuntu的错误:
[2018-09-13 19:49:28,706] ERROR [__main__.main:445] Problem occurred. Please see log!
Traceback (most recent call last):
File "script.py", line 320, in main
something[7] = "N/A"
TypeError: 'tuple' object does not support item assignment
这是PyCharm的解释器毫无问题地修改的实际元组。我可以在调试中看到这一点:
('Val', 'Val', 'Val', 'Val', 'Val', 'Val', 'Val', 'N/A', 'Val', None, None, None, None, None, None)
有什么想法吗?
答案 0 :(得分:1)
您不能将项目分配给元组,但是可以追加到元组。元组是不可变的。
有关元组的更多详细信息,请参见Python Documentation。对于您的用例,似乎@Entity
class SellingItem: GoodCount {
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
lateinit var id: UUID
@ManyToOne
var good: Good? = null
...
}
是更好的数据类型。