python怎麼從定義的函式之外呼叫其中的變數

2021-03-06 16:16:09 字數 5274 閱讀 7353

1樓:龍氏風采

# -*- coding:utf8 -*-

from tkinter import *

from tkfiledialog import

askopenfilename

root = tk()

root.title()

root.geometry()

def open_file():

file_path = askopenfilename(filetypes=(("files", "*.txt"),("all files", "*.*")))

t.insert(end, file_path +'\n')

print file_path

print file_path

t = text()

t.pack()

button(root, text="open file",***mand=open_file).pack()

root.mainloop()

按你的思路來啊,首先說為什麼會報錯。。你發現你定義了一個open_file函式之後就直接print file_path了嘛,可是這個時候file_path還沒定義誒。。然後你這個file_path是一個區域性變數,想要在函式外部使用必須global。。

# -*- coding:utf8 -*-

from tkinter import *

from tkfiledialog import askopenfilename

root = tk()

root.title()

root.geometry()

file_path = askopenfilename(filetypes=(("files", "*.txt"),("all files", "*.*")))

def open_file():

global file_path

t.insert(end, file_path +'\n')

print file_path

print file_path

t = text()

t.pack()

button(root, text="open file",***mand=open_file).pack()

root.mainloop()

所以**就成了這樣

2樓:

用def關鍵字,括號裡是引數列表def add(a, b): return a+b#下面呼叫print add(1, 2)

3樓:匿名使用者

這涉及到變數的生命週期問題,一般的,在函式裡面宣告的變數在函式外是不起作用的。

一個比較簡單的解決辦法是你在函式外就先宣告這個變數,宣告成全域性變數。然後在函式裡面進行操作和賦值。

最後就能在函式外獲取變數的值了。例如:

x = 0

def a():

x = 2

if __name__ == '__main__':

a()print x

最終x列印出來的結果就是2

4樓:匿名使用者

def test():

global x

x=2test()

print(x)

加global就可以

python 怎麼從定義的函式之外呼叫其中的變數

5樓:港三板吧

不太明白你這語法的意思,你想表達什麼,你想要使用變數就需要先定義再去使用。

python 怎麼將自定義函式的變數在外部呼叫

6樓:英雄傻小

class dayin():

def __init__(self):

self.end = ''

self.end2 = ''

self.end3 = ''

def set_end(self):

self.end = '1'

def set_end2(self):

self.end2 = '2'

def set_end3(self):

self.end3 = '3'

m = dayin()

m.set_end()

m.set_end2()

m.set_end3()

data = [[m.end],[m.end2],[m.end3]]print(data)

1、你的dayin(object)傳了一個物件,去掉。

2、你在初始化函式__init__裡面寫了引數,所以你在下面m = dayin()必須加引數。我是直接去掉了。預設為""

3、你的變數和函式名稱重複,下面呼叫時會有問題。所以我修改了。

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

7樓:匿名使用者

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

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

8樓:反翽葚讛笀仕藖

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

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

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

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

python 一個函式怎麼使用另一個函式內的變數

9樓:一豬之哀傷一

例如一個函式內有一個變數i,怎麼在函式外或另一個函式中呼叫或更改它。新手學習,謝謝。

******************************

不能在函式外更改某函式裡的區域性變數,因為每當你例項化那個函式的時候,那個函式裡面的區域性變數也會被重新賦值,重新定義,談何更改呢?

這一個全部變數和區域性變數的問題,如果要實現樓主說的,必須使用全域性變數(類中的self):

***************=bianliang.py**********=

#coding: utf-8

i = 0 #定義一個全域性變數i

def a():

'''列印出i的值

'''print i

def b():

global i

a() #呼叫a方法

print i #列印i

i = 1000 #重新賦值i

print i #列印i

a() #再次呼叫a方法

b()******************************===

%python bianliang.py00

1000

1000

這個py檔案裡面使用了一個全域性變數i,實現了a方法和b方法共用引數i

10樓:細雨搖琴

用閉包再來看看專業的解釋:閉包(closure)是詞法閉包(lexical closure)的簡稱,是引用了自由變數的函式。這個被引用的自由變數將和這個函式一同存在,即使已經離開了創造它的環境也不例外。

所以,有另一種說法認為閉包是由函式和與其相關的引用環境組合而成的實體。

def make_adder(addend):

def adder(augend):

return augend + addendreturn adder

p = make_adder(23)

q = make_adder(44)print p(100)print q(100)

執行結果:

123144

python中怎麼在自定義函式呼叫另外一個函式中的引數

11樓:司馬刀劍

>>> def a(): global q q=1+2 return q>>> def b(): a() c=2+q print(c) >>> b()5>>> q3

函式中du的變數

zhi在外面dao

呼叫,需

內要申明為

容全域性變數

python 在函式裡面定義的變數,在外面就不能用了嗎?

12樓:風吹的小羊

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

不過有時候又可以是因為,如果你在程式開頭函式前面定義一些變數,原則上它會自動變成global的。

除非你另外啟執行緒,或者是有可能有與它重名的變數,否則可以直接在函式體內使用,當然也可以在後面的語句中使用。

函數語言程式設計要記著ipo這個準則。就是每個函式最好都是有輸入input有輸出output。

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()

python怎麼定義函式,python 定義函式

給你兩個函式 插入排序 def insertion sort sort list iter len len sort list if iter len 2 return sort list for i in range 1,iter len key sort list i j i 1 while j...

在python中定義函式python中怎麼呼叫自定義函式

涉及到狀態儲存,可以使用函子 書上這麼翻譯的,不曉得其他人是不是也這樣叫 給你個例子,你比對著改。如果不懂,自己再延這個方向去檢視資料。class strip def init self,characters 初始化,將需要保留的狀態資訊存起來 self.characters characters ...

python自定義函式問題python中怎麼呼叫自定義函式?

if name main 你看下這句打錯沒有 最好直接複製過去,不要手寫 python中怎麼呼叫自定義函式?1 首先在當前目錄下找有沒有abc abc.py2 找python的安裝目錄 f python2.7exe lib site packages f python2.7exe lib 3 找電腦...