我想知道为什么Python不完全面向对象。例如,它不支持私有,公共,受保护的访问级别修饰符。
这有什么优点和缺点?通过这些表达式,Python适用于哪些应用程序(桌面,科学,Web或其他)?
Python不支持强 封装 ,它只是与术语“面向对象”相关的众多功能之一。
答案仅仅是哲学。Guido不喜欢隐藏事物,Python社区中的许多人都同意他的观点。
问题内容: (用Python shell编写) 为什么不允许对象向其添加属性? 问题答案: 请注意,实例没有属性: 一个在派生类中说明此行为的示例: 引用以下文档: […]声明采用一系列实例变量,并在每个实例中仅保留足够的空间来为每个变量保存一个值。因为未为每个实例创建空间,所以节省了空间。 编辑:要从评论中回答ThomasH,OP的测试类是“旧式”类。尝试: 您会注意到有一个实例。对象类可能没有
问题内容: (注:编辑过的问题;先前的意图不明确) 考虑以下代码: 此代码可以正常工作。 但是,如果我替换: 与: 然后编译器抱怨: java:/path/to/Foo.java:whatever:枚举开关大小写标签必须是枚举常量的非限定名称 (要求内联常量的一个原因是switch语句在每种情况下都需要常量,并且两个这样的常量值可能都不相同。编译器在编译时检查switch语句中是否有重复的常量值;
(注:经编辑的问题;事先意图不明确) 与: 在JLS的什么地方定义了语句中的值必须以这种方式编写?
问题内容: Goetz的Java Concurrency in Practice ,第41页,提到了在构造过程中如何逃避引用。“请勿执行此操作”示例: 这是通过引用封闭实例的事实进行的“转义” 。可以通过使用静态工厂方法(首先构造普通对象,然后注册侦听器)而不是公共构造函数(完成所有工作)来解决这种情况。这本书继续说: 从其构造函数中发布对象可能会发布不完整构造的对象。这是真实的 ,即使是公布在构
问题内容: 全局变量在Python中如何工作?我知道全局变量是有害的,我只是在做实验。 这在python中不起作用: 我收到一个错误: 我究竟做错了什么? 问题答案: 您需要声明: 在Python中, 您分配的 变量默认情况下成为局部变量。您需要使用将它们声明为全局变量。另一方面,您 引用但未分配的 变量不会自动成为局部变量。这些变量指的是封闭范围内最接近的变量。 Python 3.x引入了类似于
问题内容: 我了解到Python 3不向后兼容。 使用旧版本的Python会不会影响很多应用程序? Python 3的开发人员怎么不认为使其向后兼容绝对必要? 问题答案: Python 3.0向后兼容吗?为什么? Python 3.0实现了许多非常有用的功能并打破了向后兼容性。它是故意这样做的,因此即使Python 2.x代码在Python 3.x下可能无法正常工作,也可以实现出色的功能。 因此,
问题内容: 这是什么在StackOverflow上经常讨论的问题,这意味着什么: 这样的好处是,如果通过HTTPS访问它,则会自动获得HTTPS,而不是那种可怕的“此页面上的不安全元素”警告。 但是,为什么要完全使用相对协议的URL?为什么不直接在CDN URL中始终使用HTTPS?毕竟,如果您决定通过HTTPS加载HTTP页面的某些部分,则没有理由抱怨。 (这是专门针对CDN的;几乎所有CDN都
我这样声明了'car'对象: 当我运行该程序时,这段代码给我一个错误,它说“无法分配字段”color“,因为”car[i]“为空”: (“color”属性位于类“vehicles”中)