1. 多module的class繼承,一定要指明父類(包.類名):
a.py
class a(object):
錯誤的方式
b1.py
import a
class b1(a):
報錯:
attributeerror: 'module' object has no attribute 'a'
正確的方式
b1.py
import a
class b1(a.a):
2. 兩個module的互相import盡量避免,改在需要的函式中import
錯誤的方式
a.py
import b1
class a(object):
b1.py
import a
class b1(a):
正確的方式
a.py
class a(object):
'''classdocs
'''data = 0
def __init__(self, data):
self.data = data
'''constructor
'''def showa(self):
import b1
tmp = b1.b1(3)
print "a:" + str(self.data)
b1.py
import a
class b1(a):
3.super不是函式是類,多繼承注意mro現象。
參考:
1. super並不是乙個函式,是乙個類名,形如super(b, self)事實上呼叫了super類的初始化函式,
產生了乙個super物件;
2. super類的初始化函式並沒有做什麼特殊的操作,只是簡單記錄了類型別和具體例項;
3. super(b, self).func的呼叫並不是用於呼叫當前類的父類的func函式;
4. python的多繼承類是通過mro的方式來保證各個父類的函式被逐一呼叫,而且保證每個父類函式
只呼叫一次(如果每個類都使用super);
5. 混用super類和非繫結的函式是乙個危險行為,這可能導致應該呼叫的父類函式沒有呼叫或者一
個父類函式被呼叫多次。
4.python中module,class,object,function都是物件。
import a
class b1(a):
python常見問題彙總2
python中怎麼生成隨機數?答案 random模組。隨機整數,random.randint a,b 返回隨機整數x,a x b,random.randrange start,stop step 返回乙個範圍在 start,stop step 之間的隨機整數,不包括結束值。隨機實數,random.r...
Oracle常見問題彙總
1 如果建立了多個oracle例項,那麼訪問em的時候預設訪問的是第乙個例項的,如何訪問第二個呢?看下這個檔案就會明白了 oracle home install portlist.ini enterprise manager console http 埠 shili1 1158 enterprise...
ab常見問題彙總
測試伺服器ab 被測試伺服器apache apache版本2.2.25 問題一 socket too many open files 24 解決 在測試伺服器操作 1 檢視當前系統設定 open files n 1024為1024 root localhost ulimit a core file ...