作者adrianshum (Alien)
看板Programming
标题Re: Python 能 有polymorphism 的functions 吗
时间Thu Aug 20 14:48:45 2009
※ 引述《sorryChen (陈扬和)》之铭言:
: 初学python 问了笨问题请多多包含
: 很多人觉得不用type checking python很好用 但我觉得挺危险的
: 而且应该不能有polymorphism.. 这样类似的function作用在不同type的data
: 时 就不能定义同名的function. 必须要在function中自己判别
: 然後写 不同function 处里不同type 的class..
: 这样不是把type checking的责任交给programmer ...
: 有前辈可以指引在python 中 正确的处理不同type类似function的方法吗
: 或是应该看什麽文件
我想你大概搞错了什麽叫 polymorphism 吧.
要因应不同的 type 去写不同的处理这种做法
某程度就是有违 OOP 中的 polymorphism 的
思维了.
我猜你想说的只不过是 method overloading .
没认真写过 python 但 python 和 ruby 都是用所
谓 duck typing, 这种机制下, 应该能正常到做
method overloading 的效果吧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 godfat:overloading 是静态的,ruby 确实没有 220.128.121.85 08/20 15:22
2F:→ adrianshum:其实 overloading 定义上应该不一定要 202.155.236.82 08/20 17:31
3F:→ adrianshum:静态吧? 可以 late binding 找到适合的 202.155.236.82 08/20 17:32
4F:→ adrianshum:overloaded method 应该也算吧? 202.155.236.82 08/20 17:32
5F:推 godfat:是可以,只是感觉就少掉很多 overloading 220.128.121.85 08/20 17:41
6F:→ godfat:本身的好处。不知道有语言内建这样的吗? 220.128.121.85 08/20 17:41