对OO其实是不懂, 只是会一个class( 模式说白了不会. 接口是学了go语言才知道是什么. (-_-)! )
今天在看flup项目的代码时, 有一段发码看不懂. 其实是自己对OO的不懂:
1 #coding:utf-8
2
3 class Parent(object):
4 def __init__(self, name):
5 self._name = "\t父类: %s" % name
6 def whoami(self):
7 print self._name
8 print "在父类方面中调用子类的方法:"
9 self._print()
10
11
12 class Child(Parent):
13 def __init__(self, name):
14 self._nickname = "\t子类:%s" % name
15 Parent.__init__(self, "大明")
16
17 def _print(self):
18 print self._nickname
19
20 def run(self):
21 # 下面的两种调用方法是一样的
22 print "使用Parent.method(self)的方法调用父类方法"
23 Parent.whoami(self)
24 print "使用self.method()的方法调用父类方法"
25 self.whoami()
26
27
28
29 if __name__ == "__main__":
30 c = Child("小明")
31 c.run()
平时一般都是使用self.whoami(), 自为发父方法无法使用子类的东西. 但是如果使用Parent.whoami(self) 的方式, 就会明白自己的理解其实是错的.
基本问题是自己没有对书中的Parent.__init__(self, "大明") 一句理解到位
嗯.... 自己的水平太差了.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.