python-基礎筆記4-面向對象

面向對象最主要的是(類和繼承)
類:用來描述相同屬性和方法的集合
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() 打印局部變量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章