Python Forum
problem with function return value
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
problem with function return value
#1
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??
Reply
#2
Unclear... I don't see where your code calls anything().
Unless noted otherwise, code in my posts should be understood as "coding suggestions", and its use may require more neurones than the two necessary for Ctrl-C/Ctrl-V.
Your one-stop place for all your GIMP needs: gimp-forum.net
Reply
#3
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()
Reply
#4
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.
"As they say in Mexico 'dosvidaniya'. That makes two vidaniyas."
https://freedns.afraid.org
Reply
#5
Hello, I haven’t supposed the code but I cant right the whole code because it is protected.
Reply
#6
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:
    ....
Unless noted otherwise, code in my posts should be understood as "coding suggestions", and its use may require more neurones than the two necessary for Ctrl-C/Ctrl-V.
Your one-stop place for all your GIMP needs: gimp-forum.net
Reply
#7
(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.
Reply
#8
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)
Reply
#9
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.
Reply
#10
Yeah. Check the return value in whatever's calling the method.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  nested function return MHGhonaim 2 609 Oct-02-2023, 09:21 AM
Last Post: deanhystad
  return next item each time a function is executed User3000 19 2,277 Aug-06-2023, 02:29 PM
Last Post: deanhystad
  function return boolean based on GPIO pin reading caslor 2 1,171 Feb-04-2023, 12:30 PM
Last Post: caslor
  Stock Return calculation problem LFin 10 2,056 Sep-26-2022, 04:28 PM
Last Post: deanhystad
  return vs. print in nested function example Mark17 4 1,739 Jan-04-2022, 06:02 PM
Last Post: jefsummers
  How to invoke a function with return statement in list comprehension? maiya 4 2,826 Jul-17-2021, 04:30 PM
Last Post: maiya
  Function - Return multiple values tester_V 10 4,439 Jun-02-2021, 05:34 AM
Last Post: tester_V
  Get return value from a threaded function Reverend_Jim 3 17,040 Mar-12-2021, 03:44 AM
Last Post: Reverend_Jim
  Return not exiting function?? rudihammad 3 5,282 Dec-01-2020, 07:11 PM
Last Post: bowlofred
  Why does my function return None? vg100h 3 2,197 Oct-29-2020, 06:17 AM
Last Post: vg100h

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020