Avatar of jskfan
jskfan
Flag for Cyprus asked on

using Python Modules

using Python Modules

I have this Python Code:

def test1(weight):
    return weight * 0.45
print(test1())

def test2(weight):
    return weight/ 0.45
print(test2())

Open in new window


I want to call the methods above from this program and pass the wight argument for instance 200
from mod1 import test1,test2
test1(200)
test2(200)

Open in new window


however, it seems like if I do not specify the weight  in Mod1.py   the calling code will fail.

C:\Users\user\AppData\Local\Programs\Python\Python38\python.exe C:/Python-Projects/Mydjangoproject/test.py
Traceback (most recent call last):
  File "C:/Python-Projects/Mydjangoproject/test.py", line 1, in <module>
    from mod1 import test1,test2
  File "C:\Python-Projects\Mydjangoproject\mod1.py", line 3, in <module>
    print(test1())
TypeError: test1() missing 1 required positional argument: 'weight'

Process finished with exit code 1[code]

Open in new window


[/code]
Programming Languages-OtherPython

Avatar of undefined
Last Comment
jskfan

8/22/2022 - Mon
David Johnson, CD

your print statements are after the function returns (ergo not in the function) so it will error out when it tries to compile the functions
David Johnson, CD

a.py
def test1(weight):
    return weight * 0.45

def test2(weight):
	return weight / 0.45

Open in new window

>>> from a import test1,test2
>>> test1(200)
90.0
>>> test2(200)
444.44444444444446
>>>

Open in new window

Norie

Remove the print statements from mod1.py

Or if you want to keep them for some reason, e.g. to test the functions, then try something like this.
def test1(weight):
    return weight * 0.45

def test2(weight):
	return weight / 0.45

if __name__ == '__main__':
    print(test1(100))
    print(test2(100))

Open in new window

I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck
jskfan

ASKER
David,

I corrected the code but still do not get any result:

Test.py
from mod1 import test1,test2
test1(200)
test2(200)

Open in new window


Mod1.py

def test1(weight):
    return weight * 0.45
    print(test1())

def test2(weight):
    return weight/ 0.45
    print(test2())

Open in new window


when I run it, I do not get any result:

C:\Users\user\AppData\Local\Programs\Python\Python38\python.exe C:/Python-Projects/Mydjangoproject/test.py

Process finished with exit code 0

Open in new window

ASKER CERTIFIED SOLUTION
Norie

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
jskfan

ASKER
Perfect!

it worked ..Thank you