Python Forum
changing value and rerunning the code
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
changing value and rerunning the code
#1
i need this for something else i am working on, so i added it into a more simple code,
what i am trying to do is tell the code that if self.w(the third number) is greater than 20, self.z(the second number) will equal 0(in case the user wants that).
now i want the code to run again with the value the user previously put in, and with self.z = o.
class First():
    def number_input(self):
        self.x = int(input("whats your first number?\n"))
        print('your first number is', self.x)

class Second():
    def result(self):
           self.z = self.x + 2
           print('your second number is', self.z)

class Third():
    def last_result(self):
        self.w = self.z + self.x
        print('your third number is',self.w)

class if_over(First, Second, Third):
    def over(self):
        if self.w > 20:
            yes_no = (input("do you want your second number to equal 0?\n"))
            if yes_no == 'yes':
                self.z = 0





obj = if_over()
obj.number_input()
obj.result()
obj.last_result()
obj.over()
Reply
#2
No need for class here.
Reply
#3
(Jan-18-2018, 04:40 PM)Larz60+ Wrote: No need for class here.
i need it for something else in which i am using classes, is it not possible?
Reply
#4
Instead of if_over inheriting from all three other classes, it should only inherit from Third, which in turn extends Second, which then extends First.

The reasoning being that Second uses self.x, which is only defined in First, and Third uses self.z, which is only defined in Second. So those classes should extend from what they need, so they can be used by themselves. Your code, as it is, will never work if you try to create an object of any class EXCEPT if_over. Ideally, each piece of the chain will work, and the next piece adds more, instead of the bottom piece being the only usable one.
Reply
#5
(Jan-18-2018, 07:32 PM)nilamo Wrote: Instead of if_over inheriting from all three other classes, it should only inherit from Third, which in turn extends Second, which then extends First.

The reasoning being that Second uses self.x, which is only defined in First, and Third uses self.z, which is only defined in Second. So those classes should extend from what they need, so they can be used by themselves. Your code, as it is, will never work if you try to create an object of any class EXCEPT if_over. Ideally, each piece of the chain will work, and the next piece adds more, instead of the bottom piece being the only usable one.

thanks for the tip brother,the explanation makes so much sense.
any suggestion to how i may solve this issue?
Reply
#6
class First:
    pass

class Second(First):
    pass

class Third(Second):
    pass

class if_over(Third):
    pass
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Code changing rder of headers Led_Zeppelin 0 891 Jul-13-2022, 05:38 PM
Last Post: Led_Zeppelin
  Changing a string value to a numerical value using python code and a lamda function Led_Zeppelin 6 1,538 Jul-05-2022, 11:29 PM
Last Post: deanhystad
  changing code to work on a batch of images within a folder Afrodizzyjack 2 2,011 May-12-2020, 08:56 PM
Last Post: Afrodizzyjack

Forum Jump:

User Panel Messages

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