Найти - Пользователи
Полная версия: методы get и set внутри класса
Начало » Python для новичков » методы get и set внутри класса
1
sinopteek
Переписываю программ с C# на python.
дошёл до функций внутри класса, которые имеют на С# следующий вид
 unsafe class ATMega16
{
..............
public byte DDRA
{
set
{
usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT,
RQ_IO_WRITE, value, aDDRA, null, 0, 5000);
}
get
{
usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
RQ_IO_READ, 0, aDDRA, buffer, 1, 5000);

return buffer[0];
}
}
.............
}
Требуется получить на выходе следующую конструкцию(на C# работатет):
dev = ATMega16()
dev.DDRA |= 0x01
как я понимаю необходимо переопределить функции __set__ и __get__ внутри создаваемого класса,
к сожалению не могу вменяемой информации по этому поводу

Пока получается что-то подобное:
class ATMega16():
class DDRA:
reqbuffer = [0]*4
def __set__(self):
self.handle.controlMsg( USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT,RQ_IO_WRITE, 0, value, aDDRA,100)

def __get__(self):
return self.handle.controlMsg(USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,CUSTOM_IO_READ,0,value,aDDRA,0,timeout)
функции usb_control_msg и controlMsg на C# и python'е отличаются из-за реализации библиотек(если у кого возникнуит вопросы)
regall
Свойства только для чтения:

class Foo(object):
_x = None

@property
def x(self):
return self._x
Cвойства для чтения и записи:

class Foo(object):

_x = None

def getX(self):
return self._x

def setX(self, value):
self._x = value

x = property(getX, setX)
Вот как-то так.
sinopteek
regall
Вот как-то так.
Спасибо, получилось =)
странно но в pydcos локально нет информации о property(), поэтому пара ссылок по теме, если вдруг кому понадобится:
http://docs.python.org/library/functions.html - поиском property
http://snippets.dzone.com/posts/show/954
regall
sinopteek
странно но в pydcos локально нет информации о property(),
Странно, что вы не нашли (ниже ссылка - быстрый поиск в пидоках по слову property =) ):
http://docs.python.org/search.html?q=property&check_keywords=yes&area=default
sinopteek
regall
sinopteek
странно но в pydcos локально нет информации о property(),
Странно, что вы не нашли (ниже ссылка - быстрый поиск в пидоках по слову property =) ):
http://docs.python.org/search.html?q=property&check_keywords=yes&area=default
У меня python версии 2.5.4(в основном из-за нескольких библиотек и совместимости) и в нём нет документации по property(по крайней мере локально),
Сам удивляюсь. На сайте - документация есть, но от более новой версии, что несколько странно
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB