昨天介紹了面向?qū)ο蟮母拍?,今天我們來?chuàng)建一個類。
1. class MyClass:
2. pass
3.
4. mc = MyClass()
5. print mc
關(guān)鍵字class加上類名用來創(chuàng)建一個類。之后縮進(jìn)的代碼塊是這個類的內(nèi)部。在這里,我們用pass語句,表示一個空的代碼塊。
類名加圓括號()的形式可以創(chuàng)建一個類的實例,也就是被稱作對象的東西。我們把這個對象賦值給變量mc。于是,mc現(xiàn)在就是一個MyClass類的對象。
看一下輸出結(jié)果:
1. <__main__.MyClass instance at 0x7fd1c8d01200>
2.
這個意思就是說,mc是__main__模塊中MyClass來的一個實例(instance),后面的一串十六進(jìn)制的數(shù)字是這個對象的內(nèi)存地址。
我們給這個類加上一些域:
1. class MyClass:
2. name = 'Sam'
3.
4. def sayHi(self):
5. print 'Hello %s' % self.name
6.
7. mc = MyClass()
8. print mc.name
9. mc.name = 'Lily'
10. mc.sayHi()
我們給MyClass類增加了一個類變量name,并把它的值設(shè)為'Sam'。然后又增加了一個類方法sayHi。
調(diào)用類變量的方法是“對象.變量名”。你可以得到它的值,也可以改變它的值。
注意到,類方法和我們之前定義的函數(shù)區(qū)別在于,第一個參數(shù)必須為self。而在調(diào)用類方法的時候,通過“對象.方法名()”格式進(jìn)行調(diào)用,而不需要額外提供self這個參數(shù)的值。self在類方法中的值,就是你調(diào)用的這個對象本身。
輸出結(jié)果:
1. Sam
2. Hello Lily
之后,在你需要用到MyClass這種類型對象的地方,就可以創(chuàng)建并使用它。