我正在开发一个小应用程序来管理我最喜欢的食谱。我有两个班级 - 成分和食谱。 A 食谱由组成和一些额外的数据(准备等)。我有一个成分类的原因是,我想保存一些额外的信息(适当的技术等)。 配料是独一无二的,所以不能有两个同名的。是否使用字符串作为对象标识符不良做法?
目前,我在“大”字典中使用成分的名称作为关键所有成分。这是有用的,因为我可以问我的模型,如果一种成分已经注册并且使用它(包括所有它的其他数据)用于新创建的配方。我回想起当我开始编程时(Java/C++),我总是读到,使用字符串作为标识符是不好的做法。 “魔术字符串”是我经常阅读的关键字(但我认为这描述了另一个问题)。我真的很喜欢字符串方式,因为它现在是。我也没有编码问题,因为所有的字符串生成/比较都是在我的程序中完成的(如果我没有弄错,Python3会使用UTF-8),但我不确定我所做的是否是正确的方法做到这一点。
是否使用字符串作为对象标识符不良做法?不同语言之间有差异吗?如果数据量增加,字符串是否会成为性能问题?有什么选择?
我总是忘记Python有多少内部使用字典,很好的答案!我得到Python3使用unicode(Python2有一个类,如果我没有错),但不是实际编码使用UTF-8? –
不,由于性能原因,文本的内部编码必须具有每个字符的固定大小。它是“UCS4”编码,但根据每个字符串使用更紧凑的编码进行优化。 – jsbueno