Python Forum

Full Version: problem with function return value
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I ave some code which looks something as follows...
      
class xyz:
    def anything(self):
        if condition:
            if condition:
                return something
            else:
                return somethingelse
        elif Condition:
            return something
        else:
            return something
        
    def calculations(self):
        x= something+5
        y= somethingelse+10
        
I dont know what the function anything will return weather something or somethingelse..
Latter I want to use it in another function calculations.. it sould only update that value and rst should be the same..!!
Any idea??
Unclear... I don't see where your code calls anything().
sorry for that but I take an object of a class xyz as following
class xyz:
    def anything(self):
        if condition:
            if condition:
                return something
            else:
                return somethingelse
        elif Condition:
            return something
        else:
            return something
        
    def calculations(self):
        x= something+5
        y= somethingelse+10
        
        
object1=xyz
object1.anything()
object1.calculations()
it should now take "something" or "somethingelse " depending on the conditions given in multiple if-else loops and do the calculations..
in short, I dont know what the function anything() will return.. depending on that I only want to change variables in calculations()

i have done the following changes to the code to execute it properly...
'''
Created on 22 Sep 2016

@author: rathodul
'''

something=10
somethingelse=0
a=2
class xyz:
    def anything(self):
        if something<somethingelse:
            if a==10:
                return something
            else:
                return somethingelse
        elif a>somethingelse:
            return something
        else:
            return something
        
    def calculations(self):
        x= something+5
        y= somethingelse+10
        return x,y
        
        
object1=xyz()
object1.anything()
object1.calculations()
print object1.calculations()
Your can't start to write a code just supposing how to do it and then asking why it's not working. Start here. See how to define a class, how to create an instance of a class. How to pass the parameters.
Hello, I haven’t supposed the code but I cant right the whole code because it is protected.
Still unclear... anything() doesn't change the state of the object. But computations() doesn't either, unless x and y are attributes?

What is the problem with using:
if object1.anything()==something:
    ....
else:
    ....
(Sep-22-2016, 02:37 PM)ujjwalrathod007 Wrote: [ -> ]I dont know what the function anything will return weather something or somethingelse..
That depends entirely on the conditions. Which you never defined. So nothing would be returned, because the script is invalid.
You are missing basic understanding how class works.
So read more about it.
Quote:I dont know what the function anything will return
It's not called a function when it belong to class,it's now a method.
You should not have variables outside the class,
these should be arguments that is given to the class.
Just to write something that make more sense,in the way class work.
Not changing anything to method anything which could be wrong.
class xyz:
    def anything(self, anything, somethingelse, a):
        if something < somethingelse:
            if a == 10:
                return something
            else:
                return somethingelse
        elif a > somethingelse:
            return something
        else:
            return something

    def calculations(self, any_obj):
        x = any_obj + 5
        y = any_obj + 10
        return x, y

object1 = xyz()
something = 10
somethingelse = 0
a = 2
any_obj = object1.anything(something, somethingelse, a)
print(object1.calculations(any_obj)) #(15, 20)
True, Is there any way to check weather the method has return Something or Somethingelse. Because I do this in iteration.. While true: loop. If method returns only something then I only want to update Something and keep Somethingelse as it is..!! and vice-versa.
Yeah. Check the return value in whatever's calling the method.