gpt4 book ai didi

python - 函数值检索 : how to access the value of a variable outside a function. 以及如何在另一个函数中使用该值?

转载 作者:行者123 更新时间:2023-12-01 01:06:10 25 4
gpt4 key购买 nike

我已经编写了一段代码来打印与给定的 MAC 地址相对应的 IP 地址。问题是IP位于retrieve_input函数内。如何在retrieve_input函数之外获取IP值?这是我的代码。

from tkinter import *
import subprocess

window = Tk()
window.title("Welcome..")
a = str(subprocess.getoutput(["arp", "-a"]))
print(a)
text=a
def retrieve_input(): #retrive input and fetches the IP
inputValue=txt.get(1.0, "end-1c")
ext = inputValue
if (inputValue in a and inputValue != ''):
nameOnly = text[:text.find(ext) + len(ext)]
ip = nameOnly.split()[-2]
print(ip)

window.geometry('900x700')
lbl1=Label(window, text="MAC ADDRESS",width=15,height=2,font=2)
lbl1.grid(column=0, row=0)
txt=Text(window, width=25,height=1)
txt.grid(column=1, row=0)
btn = Button(window, text="CONVERT",fg="black",bg="light
grey",width=15,font=4,height=2,command=lambda:(retrieve_input())
btn.grid(column=1, row=2)

window.mainloop()

最佳答案

def retrieve_input():                   #retrive input and fetches the IP
inputValue=txt.get(1.0, "end-1c")
ext = inputValue
if (inputValue in a and inputValue != ''):
nameOnly = text[:text.find(ext) + len(ext)]
ip = nameOnly.split()[-2]
return ip
else:
return False

ip_value = retrieve_input()

如果您不想使用全局变量,可以使用返回IP,该函数可以返回您想要使用的IP地址。

但是,如果您了解 Python 类和属性,还有另一种方法。

class IpValues:

def __init__ (self):
# Initialize and use it as constructor
self.ip = None
pass

def retrieve_input(self):
# retrive input and fetches the IP
inputValue=txt.get(1.0, "end-1c")
ext = inputValue
if (inputValue in a and inputValue != ''):
nameOnly = text[:text.find(ext) + len(ext)]
self.ip = nameOnly.split()[-2]


ip_values_object = IpValues()
ip_values_object.retrieve_input()
print(ip_values_object.ip)

关于python - 函数值检索 : how to access the value of a variable outside a function. 以及如何在另一个函数中使用该值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55331906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com