擅长:python、mysql、java
<p>你正在读的这本书似乎是在鼓励函数式编程风格。虽然函数式编程通常回避可变对象,但我不认为这是Python中在您这样的情况下通常使用或认可的策略。在</p>
<p>尤其是这种策略在函数式语言中相对便宜(Python支持函数式编程风格,但它是一种不需要函数式编码的多通道语言),在这种情况下,语言本身通常可以识别这样的模式,并在不改变观察到的行为的情况下将其实现为变异,从而将这样做的开销降到最低。Python为此提供了<em>no</em>支持,因此这样做的成本相当高。在</p>
<p>对于类似于由DB表支持的模型,只需使用可变对象。不可变对象有一些用例,但至少在惯用的Python中,它们通常仅限于根本不会进行更改的情况,或者如果进行了更改,它们将生成完全不相关的对象。在这种情况下,它总是相同的“John”,并且生成新对象而不是在适当的地方对它们进行变异,会有很大的数据不同步的风险,在某些地方存储旧对象,在另一些地方存储新对象,而没有明显的方法来确定哪个是新的。对于唯一用户的当前状态,有一个单一的可变的黄金标准值得使用可变对象的麻烦。在</p>