Advertisement
kenadams53

Problem with Python class variables

Aug 14th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. # this is main.py Problem with python class variables
  2. from Room import Room
  3. from Character import Enemy, Friend, Character
  4. from Item import Item
  5. peter = Enemy("Peter", "smile")
  6. sam = Enemy("sam","OK person")
  7.  
  8. print("enemies_defeated = " + str(Enemy.enemies_defeated))# is 0 the value it was initialised with
  9. Enemy.enemies_defeated=Enemy.enemies_defeated+1
  10. print("enemies_defeated = " + str(Enemy.enemies_defeated))# is 1 as we incremented
  11. print("\nnow enemies_defeated will be reset by set method applied by sam")
  12. sam.set_defeated(10)# sam resets it to 10
  13. print("enemies_defeated = " + str(Enemy.enemies_defeated))# class variable reset to 10
  14. print("sam defeated = " + str(sam.enemies_defeated))# so sam sees 10
  15. print("peter defeated = " + str(peter.enemies_defeated))# and peter sees 10
  16.  
  17. print("\nnow reset by peter")
  18. peter.set_defeated(5)
  19. print("enemies_defeated = " + str(Enemy.enemies_defeated))# is 5
  20. print(" sam defeated = " + str(sam.get_defeated()))# is 5, note the get method is imbeded in print
  21. print(" peter defeated = " + str(peter.get_defeated()))#is 5
  22.  
  23. print("sam resets it to 4")
  24. sam.set_defeated(4)
  25. print("enemies_defeated = " + str(Enemy.enemies_defeated))# is 4
  26. print(" peter defeated = " + str(peter.get_defeated()))# is 4
  27. print(" sam defeated = " + str(sam.get_defeated()))# is 4
  28.  
  29. sam.enemies_defeated = sam.enemies_defeated-1 #this code works
  30.  
  31. print("enemies_defeated = " + str(Enemy.enemies_defeated))#is 4,why has it not changed
  32. print("sam " + str(sam.enemies_defeated))# this is 3, is it a new variabe or what ??????????????
  33. print("peter " + str(peter.enemies_defeated))#this is 4,why has it not changed?
  34.  
  35. print("enemies_defeated = " + str(Enemy.enemies_defeated))# is 4
  36. print("peter defeated = " + str(peter.get_defeated()))# is 4
  37. print("sam defeated = " + str(sam.get_defeated()))# is 4
  38. print("bye end of program")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement