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:调查继承