Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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 从不是类成员的类调用单独脚本中的函数_Python_Class_Function_Structure - Fatal编程技术网

Python 从不是类成员的类调用单独脚本中的函数

Python 从不是类成员的类调用单独脚本中的函数,python,class,function,structure,Python,Class,Function,Structure,我有两个文件的程序;main.py有我的主逻辑,class.py有我的类。我的问题是,我不知道如何从class.py中的类中的函数调用main.py中的函数。下面是一个简单的例子: 在class1.py中 class Class1: def __init__(self, value): self.value = value def main_logic(self): if self.value == 'y': retu

我有两个文件的程序;main.py有我的主逻辑,class.py有我的类。我的问题是,我不知道如何从class.py中的类中的函数调用main.py中的函数。下面是一个简单的例子:

在class1.py中

class Class1: 

    def __init__(self, value):
        self.value = value

    def main_logic(self):
        if self.value == 'y':
            return self.value
        else:
            self.value == 'n':
                #main()??   How would I call main() in main.py?
在main.py中

def display1():  
    print('Main Menu')

def main():
    create_obj = Class1(value1)
    new_object = Class1.main_logic()
    if new_object == 'y':
        display1()

if __name__ == '__main__':
    main()

当然,如果有更好的方法来构造这样的内容,我也可以在那里使用一些帮助。

这通常不是编写代码的最佳方法,但您可以:
import main;main.display1()


为什么您在main中调用的函数是所有Class1用户都需要的函数?我试图简化示例。在本例中,是的,我可以将main()添加到Class1。我想我真正想问的是如何调用一个不在类中的函数,以及如何调用一个独立于类中函数的文件。谢谢!更好的方法是将main()和display1()放在一个类中吗?还有其他关于如何正确构造的建议吗?是的,我只是将display1()与Class1放在同一个文件中(虽然不一定是Class1的方法),并将main()保留在main.py中。
class Class1:
    def __init__(self, value):
        self.value = value

    def main_logic(self):
        if self.value == 'y':
            return self.value
        else:
            self.value == 'n':
                import main
                main.display1()