Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中带有参数的错误导入main_Python_Import_Arguments_Main - Fatal编程技术网

Python中带有参数的错误导入main

Python中带有参数的错误导入main,python,import,arguments,main,Python,Import,Arguments,Main,在一个脚本中,我试图用一个参数从另一个脚本导入主模块 我收到错误消息“NameError:未定义全局名称‘model’” 如果有人看到这个错误,我会很感激的 我的代码: 脚本1 #!/usr/bin/python import sys import getopt import pdb import shelve class Car: """ class representing a car object """ def __init__(self, model):

在一个脚本中,我试图用一个参数从另一个脚本导入主模块

我收到错误消息“NameError:未定义全局名称‘model’”

如果有人看到这个错误,我会很感激的

我的代码:

脚本1

#!/usr/bin/python

import sys
import getopt
import pdb
import shelve

class Car:
    """ class representing a car object """
    def __init__(self, model):
        self.model = model

class Porsche(Car):
    """ class representing a Porsche """
    def __init__(self, model):       
        Car.__init__(self, model)
        print "I have a Porsche but no driving licence : too bad !"

# Main
def main(argv):

    settings = shelve.open('mySettings')
    global model
    try:
        opts, args = getopt.getopt(argv, "m:", ["model="])
    except getopt.GetoptError, err:
           print " wrong argument, exiting "
           sys.exit()
    for opt, arg in opts:
        if opt in ("-m", "--model"):
            model = arg

    def choose_car(model):
        """ Creates the car"""
        my_Porsche = Porsche(model)     

    choose_car(model)

if __name__ == "__main__":
   main(sys.argv[1:]) 
脚本2

#!/usr/bin/python

import os
import sample
import sys

def main(argv):
        script1.main("-m Carrera")

# Main program
if __name__ == '__main__':
    main(sys.argv[1:])

RGD,

argv
是一个列表。因此,您应该调用
script1.main
as

script1.main(['-m', 'Carrera'])
或者,相当于

script1.main('-m Carrera'.split())

argv
是一个列表。因此,您应该调用
script1.main
as

script1.main(['-m', 'Carrera'])
或者,相当于

script1.main('-m Carrera'.split())