呼叫乙個函式
delete.py檔案(被呼叫的檔案,(記得不要用4.py這樣的數字作為被呼叫的檔案否則無法呼叫,執行檔案可以,例如下面的sky.py可以改為4.py))
def add(x,y):
print('和為:%d'%(x+y))
sky.py檔案
import delete
delete.add(1,2)
或者
from delete import add
add(1,2)
呼叫乙個類
delete.py檔案(被呼叫的檔案)
class a:
def __init__(self,xx,yy):
self.x=xx
self.y=yy
def add(self):
print("x和y的和為:%d"%(self.x+self.y))
sky.py檔案
from delete import a
a=a(2,3)
a.add()
或者
import delete
a=delete.a(2,3) # 這個也是乙個傳參的手段
a.add()
delete.py檔案的檔案路徑:e:\pythonproject\winycg
import sys
'''python import模組時, 是在sys.path裡按順序查詢的。
sys.path是乙個列表,裡面以字串的形式儲存了許多路徑。
使用a.py檔案中的函式需要先將他的檔案路徑放到sys.path中'''
import a
a=delete.a(2,3)
a.add()
delete.py檔案(被呼叫的檔案)
print('%s : hello !'%x)
print(3)
a='matting'
print(4)
sky.py檔案
k='karry'
print(1)
if __name__ == "__main__":
print(2)
執行結果為
matting : hello !34
1karry : hello !32
如果不想執行delete的其他東西,只想用它的函式那麼就要封裝
print('%s : hello !'%x)
print(3)
a='matting'
if __name__ == "__main__": # 封裝,只有自己執行這個檔案才會執行下面的語句
print(4)
參考:背景pyqt
1.對於類中函式要用乙個變數來做判斷(用self.函式)
class mywindow(qmainwindow, ui_mainwindow):
def __init__(self, parent=none):
super(mywindow, self).__init__(parent)
self.setupui(self)
self.retranslateui(self)
self.last_result = -1 # 乙個判斷機制變數
def press_picture(self): # qt裡面乙個按鈕觸發press_picture槽函式,(python裡面只會執行放在乙個行的語句,這裡有個tab空格所以不會執行得到
if last_max != self.last_result:
print(self.last_result)
2.函式之間呼叫變數(還是加global)
class mywindow(qmainwindow, ui_mainwindow):
def __init__(self, parent=none):
super(mywindow, self).__init__(parent)
self.setupui(self)
self.retranslateui(self)
def press_picture(self):
global k # 讓k變為全域性變數
k=3def fly(self):# 也是乙個槽函式
y=k+1
print(y) k=4
3.變數在類外面也是一樣加global
pic_name_num = 1
class mywindow(qmainwindow, ui_mainwindow):
def __init__(self, parent=none):
super(mywindow, self).__init__(parent)
self.setupui(self)
self.retranslateui(self)
def press_picture(self):
global pic_name_num # 反正**用到了都要加global
global model
if (pic_name_num == 1):
model =******x
4.pyqt裡面的呼叫函式(只是舉例子看看就好)
class mywindow(qmainwindow, ui_mainwindow):
def showcameraoneimage(self):
self.keypressevent() # 加了self才可以呼叫其他函式
def keypressevent(self,event):
if (event.key() == qt.key_a):
print('hello,『a』')
else: print(777)
5.如果乙個檔案呼叫另乙個問價變數有兩種方式
1.aaa.py裡面
uuu=6
class mywindow(qmainwindow, ui_mainwindow):
print(uuu) #6
bbb.py裡面
class ui_dialog5(qtwidgets.qwidget,ui_form):
def __init__(self):
from aaa import uuu # 這樣呼叫其實是乙個副本,也就是局域變數,這裡改變不會影響aaa.py裡面的值
uuu = uuu+4
print(uuu) # 10
2.用pickle(directory1就是變數)
class ui_dialog3(qtwidgets.qwidget,ui_form):
def __init__(self):
super(ui_dialog3,self).__init__()
self.setupui(self)
self.setwindowtitle("訓練視窗")
self.retranslateui(self)
self.setwindowicon(qicon('logo.png'))
if not os.path.exists('/home/test3_1.txt'):
os.mknod('/home/test3_1.txt')
f = open('/home/test3_1.txt', 'rb')
if os.path.getsize('/home/test3_1.txt'):
d = pickle.load(f)
self.lineedit.settext("%s" % (d))
f.close()
def browse(self):
# global directory1
global k
global directory1
directory1 = qfiledialog.getexistingdirectory(self, "選取資料夾", "c:/") # 起始路徑
self.lineedit.settext("%s" % (directory1))
c = directory1
f = open('/home/test3_1.txt', 'wb')
pickle.dump(c, f)
f.close()
關於import x 還有from x import * 這個問題
import 模組:匯入乙個模組;注:相當於匯入的是乙個資料夾,是個相對路徑。
from…import:匯入了乙個模組中的乙個函式;注:相當於匯入的是乙個資料夾中的檔案,是個絕對路徑。
不推薦使用from x import * 因為怕和原來檔案下有一樣的名字就會名字衝突,而且這句話意思是把這個檔案裡面的東西全部匯入,所有函式還有變數。
明天再來多程序多執行緒
iOS學習 函式的定義,函式的呼叫以及函式的宣告
函式的定義,函式的呼叫以及函式的宣告 在生活中我們需要制定一些計畫,而計畫在執行的過程中會有很多步驟.就比如我們在看球賽的過程中,教練通常會制定幾套方案,以便應對不同情況下出現的問題.而函式的作用於此類似,對於需要重複使用的 我們可以通過定義乙個函式來,給這個函式起乙個名字 新定義的函式不能喝系統函...
C 函式堆疊呼叫以及反彙編的了解
在函式呼叫的過程我們可以看作是乙個呼叫鏈。例如 在main函式中呼叫sum函式,其中main為呼叫方,sum為被呼叫方 問題一 被呼叫方執行完後,怎麼回退到呼叫方函式?問題二 被呼叫方函式執行完回到呼叫方函式後,怎麼知道延下一行繼續執行?問題三 返回值是由什麼帶出來的?問題四 形參需不需要開闢記憶體...
11 5 函式呼叫 以及 字串的方法
1.函式在呼叫的時候,會形成乙個私有作用域,內部的變數不會被外面訪問,這種保護機制叫閉包。這就意味著函式呼叫完畢,這個函式形成的棧記憶體會被銷毀。2.函式歸屬誰跟它在哪呼叫沒有關係,跟在哪定義有關 fn 呼叫完畢後得到的是乙個匿名函式,但是這個函式在fn這個作用域下定義的,所以這個匿名函式內部的變數...