Tho*_*ltz 16 php python oop comparison
我基本上想知道Python是否有任何像PHP那样的OOP缺点.PHP一直在为最后几个版本开发他们的OOP实践.它在PHP中越来越好但它仍然不完美.我是Python新手,我只是想知道Python的OOP支持是更好还是仅仅是可比的.
如果Python OOP中存在一些不遵循正确的OOP实践的问题,我肯定想知道这些.例如,PHP据我所知,不允许多重继承.
感谢大家!
编辑:如何支持公共和私人?或支持变量类型.我认为这些对于构建OOP软件非常重要.
And*_*are 21
我会说Python的OOP支持要好得多,因为它在婴儿时期被引入语言,而不是PHP将OOP固定在现有的程序模型上.
Python的OOP支持非常强大; 它确实允许多重继承,并且所有东西都可以作为第一类对象(包括类,方法等)进行操作.
通过鸭子分型表达多态性.例如,您可以以相同的方式迭代列表,元组,字典,文件,Web资源等.
有许多小迂腐的事情都不是OO,比如使用len(list)而不是list.len()来获取序列的长度,但最好不要担心它们.
Python的OOP模型的一个不寻常之处在于它的封装机制.基本上,Python假定程序员不做坏事,因此它不会在任何程度上保护私有成员变量或方法.
它通过修改以两个下划线开头并以少于两个结尾的成员名称来工作.此类标识符在任何地方都已更改,因此它们具有前置的类名称,并在此之前添加了一个下划线.从而:
class foo:
def public(self):
return self.__private()
def __private(self):
return 5
print foo().public()
print foo()._foo__private()
Run Code Online (Sandbox Code Playgroud)
以两个(或更多)下划线开头和结尾的名称不会被破坏,因此__init__python用于构造新实例的方法是独立的.
这是一个更详细解释它的链接.
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |