Re: I want to lirn pithon but pithon doesn't want me to do so

@Meatbag, properties can be used to make the user's life easier.
Consider a player. You generally don't want to make them walk past 0 on the x or y. There are some exceptions but, urm, we won't talk about those.
So, one way of doing it could be like so:

class Player:
    def __init__(self):
        self.x = 0

    def get_x(self):
        return self.x

    def set_x(self, value):
        self.x = max(value, 0)

There you have it. As long as you use the get_x and set_x functions, you'll be good. This is as close as Python gets to private variables. Try setting the x to something like -5 by using set_x, and you'll see that it doesn't work.
Now, it's pretty annoying to type get_x and set_x, isn't it? So, here's where properties come in:
Our player class can be rewritten like so, which will save you some keystrokes when typing code.

class Player:
    def __init__(self):
        self._x = 0

    @property
    def x(self):
        return self._x

    @x.setter
    def x(self, value):
        self._x = max(value, 0)

The beauty of propertys is this will work:

player.x = -2 #X is 0 because Python calls the function we wrote earlier to block negative values
print(player.x) #Same as if you would have used get_x() in our last example

Hope this helps. Do note the underscore before the variable in the __init__ function. These are typically placed in front of things that are not meant to be accessed directly. Technically, Python allows you to do whatever with the object, but it's a convention that you should get into habit of following

-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector
  • ... AudioGames . net Forum — Developers room : Meatbag via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : camlorn via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : Meatbag via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : Meatbag via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : magurp244 via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : camlorn via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : Meatbag via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : Meatbag via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : camlorn via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : amerikranian via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : amerikranian via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : Meatbag via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : camlorn via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : amerikranian via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : amerikranian via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : amerikranian via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : Meatbag via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : Meatbag via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : camlorn via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : magurp244 via Audiogames-reflector
  • ... AudioGames . net Forum — Developers room : camlorn via Audiogames-reflector

Reply via email to