pythondef函式不能被呼叫

2021-03-04 00:30:57 字數 3992 閱讀 2929

1樓:gta小雞

你的del刪除的是函式的形參x,刪除的不是作為實參的全域性變數q,更不是q指向的int型物件3。

弄清楚形參和實參的區別,以及del刪除的究竟是變數名還是物件。

2樓:

q = 3 表示乙個整數對應被建立並且賦值給了變數q,引用數是1,然後呼叫了my_del函式,引用數變成2,在函式中做了del操作,僅減少了函式引用這個引用數,原先的引用還在,所以print的時候還可以輸出。

以上,我個人理解。

python的class裡全域性變數有時不能被呼叫

3樓:育知同創教育

你在ex裡面定義的oo,所以你得先執行過ex之後才能執行start。

class test: def __init__(self,name='testa'): self.

x = 'age' self.name = name self.ex() #加上這個 self.

start() def ex(self): global oo oo = 'this is test' def start(self): print oo t=test()

如果不適用全域性變數的話,你可以self.oo:

class test: def __init__(self,name='testa'): self.

x = 'age' self.name = name self.ex() self.

start() def ex(self): self.oo = 'this is test' def start(self):

print self.oo t=test()

python中類內部的函式可以互相呼叫嗎?

4樓:匿名使用者

可以呼叫,

比如下面,***mon_func被多個函式呼叫。

class myclass:

def __init__(self):

pass

def func1(self):

# do something

self.***mon_func()

def func2(self):

# do something

self.***mon_func()

def ***mon_func(self):

pass

5樓:匿名使用者

你好,如下:

函式重複也沒關係啊,只要是知道,

是什麼功能,在特定的時候觸發就行了。

python global 變數能不能被呼叫的函式

6樓:匿名使用者

#this_is_a_global_variable = 'this is a global variable'

# ...

def func_call_global():

global this_is_a_global_variable# use it here

# ...

print (this_is_a_global_variable)return

python 函式為什麼不能通過傳參修改列表

7樓:匿名使用者

解釋:1、你首先復

定義了乙個函式制change_list;

2、然後建立了

bai列表

物件[1,2],a 是這個du列表物件的引用;

3、呼叫函

zhi數change_list,傳遞引用a,執行函式:注意函式內部定義的a在函式自己的scope,和你傳的a沒有任何關係,換句話說,函式內部定義的a是個完全新的列表物件,dao函式執行完成後,你列印a,當然還是之前定義的[1,2]

你想要修改函式外部的變數,即全域性變數,需要使用global宣告,即:

def change_list():

global a

a = [2, 3, 4]

a = [1, 2]

change_list()

print a

8樓:匿名使用者

>>> def change_list(a):

復 a = [2,3,4]>>> a= [1,2]

>>> change_list(a)

>>> a

[1, 2]

但是制這bai

個可du

以zhidao

python 能不能到函式裡才執行實參

9樓:尐二瓜

通過變通的方式是可以實現的,比如把實參封裝成函式。

number = lambda: response.xpath('/html/body').

re('(?<="product_no" value=").*?

(?=")')[0]

在函式中通過回number()呼叫

如果解答決了您的問題請採納!

如果未解決請繼續追問

python中函式外定義的變數在函式內可以使用嗎

10樓:匿名使用者

你寫的只是引用,也可以說讀取是可以的,但不能修改。

比如這樣寫,外面的i 仍然=0

11樓:反翽葚讛笀仕藖

嚴格的說,象你這麼用是絕對屬於沒有定義的。不過有時候又可以是因為,如果你在程式開頭函式前面定義一些變數,原則上它會自動變成global的。 除非你另外啟執行緒,或者是有可能有與它重名的變數,否則可以直接在函式體內使用,當然也可以在後面的語句中使用。

函式式程式設計要記著ipo這個準則。就是每個函式最好都是有輸入input有輸出output。函式體就是處理process。

盡量不要使用全域性變數,也不要使用預設值。乙個正規的做法是這樣: def example(a):

a=0 return a a=1 print example(a) 這是乙個標準用法,你就不用為global變數頭痛了。

菜鳥關於python問題請教。 為什麼以下**不能執行函式中比較大小的功能,比如輸入100和99結果不對。

12樓:匿名使用者

應該是max(int(a), int(b))你a和b是字串,不轉怎麼比?如果不是在整數,就把int換成float

python 在函式裡面定義的變數,在外面就不能用了?我不是很想用global

13樓:匿名使用者

嚴格的說,象你這麼用是絕對屬於沒有定義的。

不過有時候又可以是因為,如果你在程式開頭函式前面定義一些變數,原則上它會自動變成global的。 除非你另外啟執行緒,或者是有可能有與它重名的變數,否則可以直接在函式體內使用,當然也可以在後面的語句中使用。

函式式程式設計要記著ipo這個準則。就是每個函式最好都是有輸入input有輸出output。函式體就是處理process。

盡量不要使用全域性變數,也不要使用預設值。乙個正規的做法是這樣:

def example(a):

a=0return a

a=1print example(a)

這是乙個標準用法,你就不用為global變數頭痛了。

14樓:智應

注意縮排對齊

def example():

a = 0

print a

while, for也是一樣,沒有大括號所以對齊決定**是函式或迴圈的結束

15樓:匿名使用者

要注意變數的作用域。

你可以def example():

a = 0

return a

print example()

c中建構函式和析構函式能不能被顯示呼叫

1 c 中,建構函式和析構函式可以被顯示呼叫.顯示呼叫預設建構函式的語法 a.a a 不能寫成a.a 顯示呼叫非預設建構函式的語法 a.a a 7 不能寫成a.a 7 顯示呼叫析構函式的語法 a.a a 可以寫成a.a 2 顯示呼叫建構函式和析構函式就像呼叫一般的函式一樣,並不意味著建立或銷毀物件 ...

在呼叫函式時,函式是怎樣傳值的,c語言函式呼叫時,實參和形參是如何傳遞的?什麼時候要寫指標型變數?求高手指點

在c語言中,實參將值傳給函式中的形參,實現了自上而下的值傳遞,就可以呼叫函式了。舉個淺顯一點的例子吧 include void main int swap int x,int y 在主函式中,將實參a,b的值傳遞給被呼叫函式中的形參x,y,即將a,b分別代入x,y中計算,即達到了呼叫的目的。函式的傳...

函式不能這樣寫的嗎

可以,但呼叫方法要和它宣告的引數一致,比如max a,b 一句有問題,按照宣告引數應該是3個int,另外max方法要return 乙個int值 不可以。1 呼叫函式max時,max a,b 不合法,實參應為3個,如int a,b,c max a,b,c 2 int max 需要返回值。如題則應改為v...