У меня возникли проблемы с отправкой объектов в объектах внутри сокета с помощью json [закрыто]Python

Программы на Python
Ответить
Anonymous
 У меня возникли проблемы с отправкой объектов в объектах внутри сокета с помощью json [закрыто]

Сообщение Anonymous »

У меня возникли проблемы с отправкой объектов в Python с объектами в качестве собственного значения, т.е. self.screen = screen
это то, что вызывает ошибку в json, можете ли вы помочь, если можете, это будет обработано
привет, им пытаюсь использовать json для кодирования и отправки данных через сокет, вот код
это запускаемый файл

Код: Выделить всё

if s=="host":
h=Host(2,23)
screen=new_screen()
new_dungeon=dungeon(screen)
h.store_obj(screen,"screen")
h.store_obj(new_dungeon,"dungeon")

это хост-файл

Код: Выделить всё

class Host(object):
def __init__(self,size:int,port:int):
self.port=port
self.hostname = socket.gethostname()
self.ip_address = socket.gethostbyname(self.hostname)
self.data={}
self.var=[]
self.size=size
self.adresses=[]
self.record=[]
def store_obj(self,obj:object,obj_name:str):
y = json.dumps(obj.__dict__)
self.data[obj_name] = y.encode()
это объекты, которые я пытаюсь отправить

Код: Выделить всё

class dungeon(object):
def __init__(dungeon,screen):
dungeon.flooramnt= random.randint(3,7)
dungeon.time=0
dungeon.functions={}
dungeon.floors=[]
dungeon.screen=screen
dungeon.currentfloor=0
x=0
y=0
dungeon.initiate_dungeon()
for dungeons in dungeon.floors:
y+=dungeons.y_detirminer
x+=dungeons.x_detirminer
dungeon.size=x*y*dungeon.flooramnt
dungeon.max_time= int((random.randint(dungeon.size,dungeon.size*4))/10)

def initiate_dungeon(dungeon):
for i in range(0,dungeon.flooramnt):
dungeon.floors.append(floor(dungeon.screen,i,dungeon.flooramnt))
class floor(object):
def __init__(self,screen:new_screen,floornum:int,maxfloor:int):
self.directions={0:"north",2:"south",3:"east",1:"west"}
self.maxfloor=maxfloor
self.dir_multiplier={"north":1,"south":-1,"east":-1,"west":1}
self.floornum = floornum
self.direction="north"
list_of_rect=[]
self.x_detirminer=random.randint(200,400)
self.y_detirminer=(random.randint(200,400))
self.time=0
for y in range(0,self.y_detirminer):
temp_list=[]
for x in range(0,self.x_detirminer):
temp_list.append(block(x*24,y*24,(0,0,0),screen))
list_of_rect.append(temp_list)
self.list_of_rect=list_of_rect
for y in range(0,len(self.list_of_rect)):
for x in range(0,len(list_of_rect[y])):
self.list_of_rect[y][x].old_color=(10,70,90)
self.player= self.list_of_rect[int(dimensions[1]/48)][int(dimensions[0]/48)]
self.wall_demolisher(self.x_detirminer,self.y_detirminer)
self.screen=screen
ошибка, которую я получаю
выход obj.__dict, где произошла ошибка

Подробнее здесь: https://stackoverflow.com/questions/793 ... using-json
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»