Python常見問題彙總

2021-08-26 22:02:58 字數 1402 閱讀 5343

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 ...