python的執行順序一直都是很令人頭疼,簡單隨記了一些
1、正常順序執行。
print(1)a = 2l = [3]
這個就不附結果了,都能猜得到,這種按順序執行。
2、函式的執行過程
#coding=utf-8
defa():print('is a')defb():
a()print('b use a')defc():
b()print('c use b')defd():
c()print('d use c')
d()這裡面總共定義了4個函式,呼叫d()時,又用了c(),依次類推,輸出結果也就可想而知了。也就是如圖
結果:is a
b use a
c use b
d use c
3、類就比較麻煩了,魔法方法__new__比__init__方法前執行,具體的執行順序上例子
#coding=utf-8
classa:def __init__(self):print('init a')
param= 1
print(param)classb:def __new__(cls, *args, **kwargs):print('new b')classc:def __init__(self):print('init c')def __new__(cls, *args, **kwargs):print('new c')
a()b()
c()猜一下直接執行結果吧先。。。會出現什麼呢
哈哈哈,結果就是:
init a
new b
new c
得出,自定義變數》魔法方法__new__>__init__方法前執行,我們也發現了,為什麼new跟init同時存在,只執行了new,而沒列印init呢?
__new__必須要有返回值,返回例項化出來的例項,__init__有乙個引數self,就是這個__new__返回的例項,__init__在__new__的基礎上可以完成一些其它初始化的動作,__init__不需要返回值
不執行init方法,是因為new沒有返回類的示例,在例項化類時,也不會建立出物件,想要執行他就需要在new方法下加上
return super(c, cls).__new__(cls)
這裡知道的並不是太懂。
4、類中乙個執行的小例項
classa:def __init__(self,name):print('a class',a.__class__,name)classb(a):def __init__(self,name):
self.name=name
a.__init__(self,name)print("b class",b.__class__,name)#print('this is b')
classc(b):def __init__(self,name):
b.__init__(self,name)print("c class")
c= c('jery')
這裡會怎麼執行呢??先猜一下
結果就是
a class jery
b class jery
c class
結合自己理解更加深入了解一下。
python無法執行指令碼 無法執行python指令碼
根據指令 我是python新手 我執行 performance.py localhost 999 我得到這個錯誤 phoenix performance evaluation script 1.0 creating performance table.error could not find or ...
python的執行工具 5個酷斃的Python工具
工欲善其事必先利其器,乙個好的工具能讓起到事半功倍的效果,python社群提供了足夠多的優秀工具來幫助開發者更方便的實現某些想法,下面這幾個工具給我的工作也帶來了很多便利,推薦給追求美好事物的你。python tutor python tutor 是由 philip guo 開發的乙個免費教育工具,...
Python程式執行順序
示例 基於py3.6 一直對python程式的執行順序有些疑惑,例如python程式是順序執行的,那怎麼還有main函式的出現呢?在查閱了資料後,參見這裡後,算是有點明白了 1.python程式是順序執行的,而c 中main 是程式的入口 例如以下 結果如注釋所示,這裡雖然有個main函式,但是最先...