On Tuesday, February 10, 2015 at 3:38:12 PM UTC-8, vlya...@gmail.com wrote: > I defined function Fatalln in "mydef.py" and it works fine if i call it from > "mydef.py", but when i try to call it from "test.py" in the same folder: > import mydef > ... > Fatalln "my test" > i have NameError: name 'Fatalln' is not defined > I also tried include('mydef.py') with the same result... > What is the right syntax? > Thanks
If you only do `import mydef`, then it creates a module object called `mydef` which contains all the global members in mydef.py. When you want to call a function from that module, you need to specify that you're calling a function from that module by putting the module name followed by a period, then the function. For example: mydef.Fatalln("my test") If you wanted to be able to call Fatalln without using the module name, you could import just the Fatalln function: from mydef import Fatalln Fatalln("my test") If you had a lot of functions in mydef.py and wanted to be able to access them all without that pesky module name, you could also do: from mydef import * However, this can often be considered a bad practice as you're polluting your global name space, though can be acceptable in specific scenarios. For more information, check https://docs.python.org/3/tutorial/modules.html -- https://mail.python.org/mailman/listinfo/python-list