面向對象最主要的是(類和繼承)
類:用來描述相同屬性和方法的集合
class Employee:
'''
python多行註釋,在import引入類之後,可以用help(className)來查看類的方法和屬性,這段註釋就是該類的說明,會一起顯示。
this is a test demo class
'''
classtr="itis a test class"
def __init__(self, name, pay):
self.name=name
self.pay=pay
def hello(self):
'''
say hello
'''
print self.name
print "say hello"
# python json.py
# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import json #使用類就引入類,python類相當於python的一個模塊
>>> worker = json.Employee('xiaoming', 10000)
>>> type(worker)
<type 'instance'>
>>> worker.hello
<bound method Employee.hello of <json.Employee instance at 0x7f34422f82d8>>
>>> worker.hello()
xiaoming
say hello
>>> worker2=json.Employee('zhangqiaong',2)
>>> worker2.hello()
zhangqiaong
say hello
>>> help(json.Employee)
>>> help(worker2)
python內置類屬性
__dict__ 類的屬性(包含一個字典,由類的數據屬性組成)
__doc__ 類的文檔字符串
__name__ 類名
__moudle__ 類定義所在的模塊(類的全名是'__main__className',如果類位於一個導入模塊mymod中,那麼'className__moudle__' 等於 mymod)
__bases__ 類的所有父類構成元素
類的繼承:
class Parent:
parentAttr=100
def __init__(self):
print "調用父類構造方法"
def parentMethod(self):
print "調用父類方法"
def setAttr(self, attr):
Parent.parentAttr = attr
def getAttr(self):
print '父類屬性:', Parent.parentAttr
class Child(Parent): #繼承父類
def __init__(self):
print "調用子類構造方法"
def childMethod(self):
print '調用子類方法 child method'
>>> import json
>>> from json import Parent,Child
>>> p1=Parent()
調用父類構造方法
>>> p1.parentMethod()
調用父類方法
>>> p1.getAttr()
父類屬性: 100
>>> p1.setAttr(200)
>>> p1.getAttr()
父類屬性: 200
>>> p2=Child()
調用子類構造方法
>>> p2.childMethod()
調用子類方法 child method
>>> p2.parentMethod()
調用父類方法
>>> p2.getAttr()
父類屬性: 200
class Child(Parent): #定義子類
def __init__(self):
Parent() #調用父類的構造方法
print "調用子類構造方法"
def childMethod(self):
print '調用子類方法 child method'
>>> from json import Parent, Child
>>> p2=Child()
調用父類構造方法
調用子類構造方法
類的私有屬性不能在類外部訪問或直接使用
__private_attr
class Parent: #定義父類
parentAttr=100
__six = 'man' #定義私有屬性
def __init__(self):
print "調用父類構造方法"
def showsix(self):
print self.__six
from json import* #導出json文件包的所有類(一個文件包含多個類)
globals() 打印全局變量
locals() 打印局部變量