Python «Объект не имеет атрибута», но на самом деле он [закрыт]Python

Программы на Python
Anonymous
Python «Объект не имеет атрибута», но на самом деле он [закрыт]

Сообщение Anonymous »

Я готовлю два сценария: один с классом для связи с источником питания постоянного тока, а второй для управления связью.
dcom.py:

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

import socket

class supply:

def __init__(self, IP, PORT, BUFFER_SIZE, TIMEOUT_SECONDS):
self.IP = IP
self.PORT = PORT
self.BUFFER_SIZE = BUFFER_SIZE
self.TIMEOUT_SECONDS = TIMEOUT_SECONDS
self.connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

def opensocket(self):
supply.connection.connect((supply.IP, supply.PORT))
supply.connection.settimeout(supply.TIMEOUT_SECONDS)

def sendAndReceiveCommand(self, msg):
msg = msg + '\n'
supply.connection.sendall(msg.encode('UTF-8'))
return supply.connection.recv(supply.BUFFER_SIZE).decode('UTF-8').rstrip()

def sendCommand(self, msg):
msg =  msg + '\n'
supply.connection.sendall(msg.encode('UTF-8'))

def initialize(self):
return supply.sendAndReceiveCommand('*IDN?')

def readVoltage(self):
return supply.sendAndReceiveCommand('SOUR:VOLT?')

def readCurrent(self):
return supply.sendAndReceiveCommand('SOUR:CUR?')
main_comm.py:

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

import dcom

SUPPLY_IP = '10.41.32.2'
SUPPLY_PORT = 8462
BUFFER_SIZE = 128
TIMEOUT_SECONDS = 10

supply = dcom.supply(SUPPLY_IP, SUPPLY_PORT, BUFFER_SIZE, TIMEOUT_SECONDS)

print(supply.connection)
supply.opensocket()
Когда я запускаю main_comm.py, результат:

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

\
Traceback (most recent call last):
File "C:\\Users\\Ryszard\\Documents\\WroblewskiW\\DC_supply_comm\\main_comm.py", line 11, in \
supply.opensocket()
File "C:\\Users\\Ryszard\\Documents\\WroblewskiW\\DC_supply_comm\\dcom.py", line 15, in opensocket
supply.connection.connect((supply.IP, supply.PORT))
^^^^^^^^^^^^^^^^^
AttributeError: type object 'supply' has no attribute 'connection'
Как видите, сначала я могу напечатать значение атрибута объекта «соединение», что, как я полагаю, означает, что этот атрибут существует. Однако позже я получаю сообщение об ошибке, что у этого объекта нет такого атрибута.
У вас есть идеи, как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/786 ... lly-it-has

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