![]() |
1
10
在
PEP 351
巴里华沙提出了一个“冻结”任何可变数据结构的协议,类似于
建议是 discussed on python-dev 用 Raymond Hettinger's criticism 最详细的。 这不完全是你想要的,但它是我能找到的最接近的,并且应该给你一些关于这个主题的Python开发人员的想法。 |
![]() |
2
13
与私有方法相同: as consenting adults 代码的作者应该在不需要强制的情况下就接口达成一致。因为真的 真的? 执行合同是 坚硬的 而以半途而废的方式进行则会导致大量的黑客代码。 使用get only描述符,并在文档中清楚地说明这些数据是 意味 只读。毕竟,一个坚定的编码人员可能会找到一种方法,以不同的方式使用你的代码,不管你怎么想。 |
![]() |
3
8
任何一种语言都有许多设计问题,大多数问题的答案是“仅仅因为”。很明显,像这样的常量会违背Python的思想。
但是,可以使用
descriptors
. 这不是小事,但并不难。它的工作方式是,可以使用
代码来自 this recipe :
|
![]() |
4
1
虽然一个编写代码的程序员是一个同意的成年人,但两个使用同一代码的程序员很少是同意的成年人。更重要的是,如果他们不重视代码的美观,但他们的最后期限或研究基金。 对于这样的成年人,有一些类型的安全,由热情的 Traits 。
你可以调查一下
|
![]() |
5
1
对于一些额外的想法,这里有一个关于Java的类似问题:
当问到为什么蟒蛇 决定反对 常量引用,我认为考虑如何在语言中实现它们是很有帮助的。如果python有某种特殊声明, 康斯特 ,创建无法更改的变量引用?为什么不允许变量被声明为float/int/whateththen……这些当然有助于防止编程错误。在这里,添加类和方法修饰符(如protected/private/public/etc)将有助于强制编译类型检查,以防非法使用这些类。很快,我们就失去了Python的美丽、简洁和优雅,而我们正在编写C++的一些杂种孩子的代码。 python目前还通过引用传递所有内容。这将是某种特殊的传递引用,但要标记它以防止修改……这是一个非常特殊的情况(正如Python的道所指出的,只是“un pythonic”)。 如前所述,在不实际更改语言的情况下,这种类型的行为可以通过类和描述符实现。它可能无法阻止坚决黑客的修改,但我们是同意的成年人。巨蟒不一定 决定 反对将其作为一个包含的模块(“包括电池”)来提供——对它的需求从来就不够。 |
![]() |
dallin · 数组中的逗号运算符是否有名称? 11 年前 |