我有一个轻微的问题,在找到一个正确的方法来访问另一个函数中的一个函数的变量。
我正在制作一种远程操作工具,所以我需要处理收到的命令[像退出或nircmdc.exe或telnet等]。
下面的代码不完整,但它是核心代码:
def regular():
global data
data=c.recv(1024)
data=data.decode()
cmd=subprocess.Popen(data,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output,err=cmd.communicate()
c.sendall(output+err)
def data_process():
data=regular().data
quit='exit'
nircmd='nircmdc'
if quit in data:
do_something()
elif nircmd in data:
do_else()
这里c是连接到套接字“s”的客户端,s=套接字。套接字(socket.AF\u INET、socket.SOCK\u STREAM)
程序给出了一个错误nonetype没有属性数据...
帮我解决这个问题
您发布的代码相当粗糙,如果没有更多的上下文,就很难就如何继续向您提供好的建议。
您至少应该做的是将数据作为参数和返回值传递,而不是使用全局变量。这使得代码更易于阅读和测试。
即:
def regular(c):
data = c.rev()
... # Code that you already have
return data
def data_process(c):
data = regular(c)
... # Code that you already have
在这里使用类可能是一个好主意,也可能不是一个好主意,这取决于您试图完成的任务以及您的背景。
我有一个类Main(它具有公共静态void Main(String[]args))和另一个类MyDocument。 Main类中存在一个变量,我想从MyDocument类中的函数alphabetOccurrence()访问该变量。我该怎么做呢?我不想用它作为静态变量。任何修改只能在函数中进行,其余的代码应该保持不变。
我在尝试访问在其他函数中声明的变量时遇到问题。 这是我的代码: 我试图退回var,但没有成功。
问题内容: Python noob在这里。如何在“ fib”功能中掌握“内部”功能? 问题答案: 您不能,除非以某种方式返回,否则不能。 本质上是范围内的局部变量,您不能从外部访问函数的局部变量。(这甚至不会是有意义的,因为该功能正在运行时,除了不存在当地人想想看- 这将是有意义的访问的变量从功能之外吗?)
我不明白为什么下面的代码会打印两次。我以为应该是个人和学生。当通过“a”对象调用printPerson()内部的getInfo()时,为什么要调用Person类内部的一个,为什么不调用Student类中的一个?提前谢谢。
所以我在用摩卡酵素Sinon测试React app。我试图用if语句测试一个函数,其中有一个对另一个函数的调用。我的目标是输入if语句,但是存根第二个函数调用。代码如下: 所以我想输入if语句,但不调用getUsers()函数。我该怎么做?我正在监视SearchChange(),如下所示: 期待听到,谢谢!
问题内容: 如果我有这个: 我之前已定义,因此效果很好。 我的问题是在第6行中调用。我试图用相同的定义在第一个函数之外进行定义,但是即使调用,它也始终相同。 我希望每次调用第一个函数然后再调用第二个函数时,都具有一个不同的。 我能做到这一点,而不界定外? 问题答案: 是的,您应该考虑在一个类中定义您的函数,并使word成为成员。这比较干净 创建类后,您必须将其实例化为对象并访问成员函数。 另一种方
问题内容: 我可以在python3.2的全局范围内调用嵌套在另一个函数内的函数吗? 这是从外部func1()调用func2()的一种方法吗? 问题答案: 否,除非您返回该函数: 甚至
我定义了一个名为marger的函数来查找两个参数(num1、num2)之间的较大数。现在,我想在另一个名为“最大”的函数中使用这个函数,这个函数获得一个数组并返回该数组的最大个数,但我被卡住了。有人能帮我吗?下面是我的代码: