Jeszcze jeden problem się pojawił, mianowicie próbuję w/g dokumentacji zmienić zmienną globalną, jednak w efekcie jej wartość się nie zmienia "unit_id":
main:
from player import *
def main():
gracz = Player("player", "2342")
#gracz.print_instance()
#gracz.get_stream("print 'wyslano strumien'")
gracz2 = Player("player2", "23422")
gracz2.print_instance()
gracz2.create_unit()
gracz2.create_unit()
gracz.create_unit()
print unit_id #tutaj ma zwrocic wartosc globala
if __name__ == '__main__':
main()
player.py
from unit import *
player_id = 0
class Player:
__id = 0;
__address = "00.00.000.000";
__name = "none"
def __init__(self, name, address):
self.__name = name
self.__address = address
global player_id
player_id += 1
self.__id = player_id
print "object created"
def get_stream(self, data):
validate(data)
exec data
return
def send_stream(self, data):
pass
def validate(data):
pass
def create_unit(self):
unit = Unit()
return
def print_instance(self):
print self.__id
print self.__address
print self.__name
return
unit.py
unit_id = 0
class Unit:
__id = 0
__player_id = 0
__power = 0
__energy = 0
__can_move = False
def __init__(self):
globals()['unit_id'] += 1 #tu jest właśnie problem, bo przy print daje mi nadal wartość 0
print "unit created"
Pierwszy dzień z Pythonem i nawet przyjemnie się w nim pisze - bez dodatkowych filozofii
Edit:
poradziłem sobie, zrobiłem klasę z globanymi zmiennymi