目錄
簡介
Python模塊中通常會定義很多變量和函數,這些變量和函數相當於模塊中的一個功能,模塊被導入到別的文件中,可以調用這些變量和函數
'__init__'的用法
1. 用法類似於JAVA的構造函數
代碼段如下:
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print('Hello, my name is', self.name)
p = Person('Swaroop')
p.sayHi()
我們把__init__方法定義爲取一個參數name(以及普通的參數self)。在這個__init__裏,我們只是創建一個新的域name
初始化時並沒有專門調用__init__方法,只是在創建一個類的新實例的時候,把參數包括在圓括號內跟在類名後面,從而傳遞給__init__方法,這是這種方法的重要之處。它相當於JAVA裏面的構造函數。
2. 其可以被子類繼承或重寫
class NewOne(Person):
def getName(self):
return self.name + ' NewOne'
if __name__ == '__main__':
b = NewOne('hello')
print(b.getName())
子類可以不重寫__init__,實例化子類時,會自動調用超類中已定義的__init__。 輸出爲
hello NewOne
但如果重寫了__init__,實例化子類時,則不會隱式的再去調用超類中已定義的__init__,如下
class NewOne(Person):
def __init__(self, name1,name2):
self.name1 = name1
self.name2 = name2
def getName(self):
return self.name1 + self.name2 + ' NewOne'
if __name__ == '__main__':
b = NewOne('hello_1','Hello_2')
print(b.getName())
hello_1Hello_2 NewOne
‘__name__’的用法
__name__ 可以標識模塊的名字,可以顯示一個模塊的某功能是被自己執行還是被別的文件調用執行,假設模塊A、B,模塊A自己定義了功能C,模塊B調用模塊A,現在功能C被執行了:
如果C被A自己執行,也就是說模塊執行了自己定義的功能,那麼 __name__=='__main__'
如果C被B調用執行,也就是說當前模塊調用執行了別的模塊的功能,那麼__name__=='A'(被調用模塊的名字)
其實換一種說法也就是__name__ 表示當前程序運行在哪一個模塊中
class Student:
def __int__(self):
pass
def differ(self):
if __name__=='__main__':
print('My own module:' + __name__)
else:
print('Called by :'+ __name__)
s=Student()
s.differ()
輸出是:
My own module:__main__
————————————————
版權聲明:本文爲CSDN博主「xmp1669217327」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xmp1669217327/article/details/81382174