#!/usr/bin/python
# Filename: class_init.py
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print 'Hello, my name is', self.name
p = Person('Swaroop')
p.sayHi()
# This short example can also be written as Person('Swaroop').sayHi()
(源文件:code/class_init.py)
輸出
$ python class_init.py
Hello, my name is Swaroop
它如何工作
這里,我們把 init 方法定義為取一個(gè)參數(shù) name(以及普通的參數(shù) self)。在這個(gè) init 里,我們只是創(chuàng)建一個(gè)新的域,也稱為 name。注意它們是兩個(gè)不同的變量,盡管它們有相同的名字。點(diǎn)號(hào)使我們能夠區(qū)分它們。
最重要的是,我們沒(méi)有專門(mén)調(diào)用 init 方法,只是在創(chuàng)建一個(gè)類的新實(shí)例的時(shí)候,把參數(shù)包括在圓括號(hào)內(nèi)跟在類名后面,從而傳遞給 init 方法。這是這種方法的重要之處。
現(xiàn)在,我們能夠在我們的方法中使用 self.name 域。這在 sayHi 方法中得到了驗(yàn)證。
給 C++/Java/C#程序員的注釋
init 方法類似于 C++、C#和 Java 中的 constructor 。