python主要的内建对象类型 (数字,字符串,列表,元组和字典) 面向对象的语言python : 多态,封装,方法,特性,超类,继承! @学习摘录 701:对象的魔力 * 多态 : 意味着可以对不同类的对象使用同样的操作! * 封装 : 对外部隐藏对象的工作细节。 * 继承 : 以普通的类为基础建立专门的类对象。 @学习摘录 702:多态无处不在! >>> 'abc'.count('a') 1 >>> ['a', 2, 'a', 3].count('a') 2 >>> 1+2 3 >>> 'dog'+'cat' 'dogcat' ------------702.py------------------------- #!/usr/bin/python #coding utf-8 def add(x, y) : return x + y print add(1, 2) print add('Hi', '--Tom!') hp@ubuntu:~/py$ python 702.py 3 Hi--Tom! ------------------------------------------ @学习摘录 703:创建自己的类! #!/usr/bin/python #coding: utf-8 __metaclass__ = type # 确定使用新式类 class Person : def setName(self, name) : self.name = name def getName(self) : return self.name def greet(self) : print "Hello, world! I'm %s." % self.name foo = Person() bar = Person() foo.setName('Jim') bar.setName('Tom') foo.greet() bar.greet() print "陈立宾" print type(bar) ------------------------------------------ @学习摘录 704:python并不直接支持私有方式 class Secretive : def __inaccess(self) : print "Bet you can't see me..." def access(self) : print "The secret message is :" self.__inaccess() >>> s = Secretive() >>> s.access() >>> s.__inaccess() 出错 >>> Secretive._Secretive__inaccess() 确保其他人不会访问对象的方法和特性是不可能的,但是这类 “名称变化术”就是他们不应该访问这些函数或者特性的强有力信号! -- 完成私有也可以使用单下划线,不过是个习惯,但确实有效果。 例如,前面有下划线的名字都不会被带星号的 imports 语句 (from module import *) 导入! @学习摘录 705:类的命名空间 像方法一样,类作用域内的变量也可以被所有实例访问。 @学习摘录 706:指定超类 @学习摘录 707:调查继承