首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在导入文件中使用主文件的变量

在导入文件中使用主文件的变量
EN

Stack Overflow用户
提问于 2022-03-16 07:21:17
回答 1查看 54关注 0票数 0

我正在使用python,自己无法解决这个问题。我定义了变量(Rb)。)在下面的“主文件”中。我导入了'hp文件‘来使用热板功能。( i611Robot,Teachdata,MotionParam,位置包含在“A文件”中)

代码语言:javascript
复制
from hp import *
from A import *

def main():
    rb = i611Robot()
    data = Teachdata()
    m1 = MotionParam(30,20,10,2,2)
    position_1 = Position(100,200,100,0,0,0)
    ...
    ....
    hotplate(rb)

if __name__ == '__main__':
    main()

这是导入的'hp文件‘。

代码语言:javascript
复制
from A import *
def hotplate(rb) :
    rb.motionparam( m1 )
    rb.move( position_1 ) 
    .......

但问题是当我播放“主文件”时,上面写着

代码语言:javascript
复制
File "main.py" line.., in <module>
    main()
File "main/py", line ...., in main
    hotplate()
File ".../hotplate.py", in line .., in hotplate
    rb.motionparam( m1 ) 
NameError : global name 'm1' is not defined

我已经问过关于如何在hotplate.py中使用rb的问题,并得到了必须将rb放在hotplate()中的答案。这个效果很好。但另一个问题是,有如此多的变量,如rb和m1、position_1等参数,它们将用于hotplate.py文件中。如何使用hotplate.py文件中的所有变量、实例、参数.

EN

回答 1

Stack Overflow用户

发布于 2022-03-16 07:41:10

正如@Barmar已经评论的那样,函数应该从参数中获取它们的信息。

你的代码

你所做的不起作用:

代码语言:javascript
复制
def a():
    myVar = "Hello"
    b()


def b():
    print(myVar)


if __name__ == "__main__":
    a()

函数b不知道变量myVar,变量超出了作用域。

解决方案

您需要做的是将函数需要的参数传递给函数的参数:

代码语言:javascript
复制
def a():
    myVar = "Hello"
    b(myVar)


def b(myArg):
    print(myArg)


if __name__ == "__main__":
    a()

输出

代码语言:javascript
复制
Hello

在这里了解python函数:https://www.w3schools.com/python/python_functions.asp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71493098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档