python的執行順序 python之執行順序隨記

2021-10-11 22:13:41 字數 1581 閱讀 9449

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函式,但是最先...