LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: liweioop

不喜欢python的一个理由

[复制链接]
发表于 2005-4-27 10:30:03 | 显示全部楼层
Post by liweioop
什么是"单独方法"
如果

  1. class myclass:
  2.        def hellow():
  3.               print 'Hellow'
  4. #此处是创建了一个实例,其实用new运算更好,因为有删除一个对像用的是del
  5. obj=myclass()
  6. obj.hellow() #此处会出错
  7. myclass.hellow() #同样出错,提示没有这个attribute
复制代码

上面的类的定义中,定义了一个方法hellow(),那么这个方法好像是个死的一样,
永远也无法调用到hellow()这个方法.

而语法是,却不会有任何提示说,hellow这个方法无法执行.这是为什么?  请指点


这些都已经说明了啊:
假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self的原理了。


单独方法就是不存在于类(或对象)中的方法。

ps: java中没有单独方法,  static方法倒是有点类似。这样做非常严谨。就跟断言一样,很大程度上断言是不需要的,但是确实可以靠它发现一些很幼稚的bug。
回复 支持 反对

使用道具 举报

发表于 2005-5-8 13:50:22 | 显示全部楼层
print "Hellow\n"
不是来得更快? 为什么总是要把OO拿出来说事儿?
脚本语言如果只是用来做一些简单应用,完全没必要OO,我觉得OO只是在软件工程上有意义,从技术上讲,没什么东东是离开OO就实现不了的.
OO也只是一种思想,用它的人灵活运行便是了

我觉得也许Ruby 更适合你
回复 支持 反对

使用道具 举报

发表于 2005-5-8 14:00:42 | 显示全部楼层
OO 方法是有其明显的优势,但任何事物的好坏都不是绝对。我觉得现在一些一味追求纯 OO 的编程语言,都过分偏激了,所谓 过犹不及 啊。
ps: 所以我更喜欢灵活的 C++ 和 Perl   
回复 支持 反对

使用道具 举报

发表于 2005-5-16 00:54:48 | 显示全部楼层
C++的member function实际上this指针是作为arg传进去的,
只是这个工作是由编译器帮你完成的而已。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表