我正在使用Python和C#。
在C#中,几乎需要使用属性。 在Python中,可以使用属性,但我不经常看到它们在使用中。
为什么Pythonistas不像其他语言的程序员那样使用属性有什么特定原因?
答案 0 :(得分:3)
Python是一种同意成年人的语言。 - Alan Runyan Plone的联合创始人
在Python中,哲学是我们都是responsible users(可能是对术语"consenting adults"的改进),所以我们不保护数据,除非我们认为对用户有好处。
文化证据:
也许这个属性是可以计算的,不需要经常使用,从而节省空间。
可能该属性必须是特定类型,用户很容易被赋予错误的类型或值,因此您可以通过管理对该用户的访问权限为用户创建价值。
也许该属性作为一个函数会更好,但它最初只是一个简单的点缀查找,但后来变成了上面两个中的一个,所以我们保留API以避免破坏用户。
< / LI>也许代码只会被作者使用,因此保护用户不那么重要。
也许我们试图通过预先计算属性来从代码中获取更多性能,并且不介意内存权衡。
也许我们希望我们的代码更简洁/更简洁。
请注意,给出的理由是程序员的判断。语言不需要托管属性,但它们是一项功能。如果您认为您的用户不需要它们,您可以避免支付计算成本。
其他语言并不一定分享这种理念 - 相反,文化是你必须编写自己只使用自己的代码,就好像你是一个用户社区一样。这就是为什么他们会比你在Python代码中看到的更多地使用这些数据隐藏。