Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Пользовательский тип в Питоне


Автор: wirw 3.9.2007, 06:51
1)Как реализуется свой сложный тип в Питоне.
В дельфи допустим я писал
Type 
  MyType=record
    mil,sec:integer
    rnd:single
  end;

А как в питоне?

Автор: pythonwin 3.9.2007, 07:09
создаешь класс и работаешь smile

Код

class MyType(object):
    def __init__(self, *args, **kw):
        self.minute = 1
        self.sec = 1
        self.rnd = 1
        for k in kw.keys():
            setattr(self, k, kw[k])
    def __setattr__(self, name, value):
        if len(name)>0:
            if name[0]!='_' and name[-1]!='_':
                if name in ['minute', 'sec', 'rnd']:
                    value = int(value)
                super(MyType, self).__setattr__(name, value)


и ещё - в питоне есть только два целых типа: int и long. И целые в питоне не ограничены:
Код

>>> int('65464654564687978798798798797889797978897897')
65464654564687978798798798797889797978897897L

Автор: wirw 3.9.2007, 10:08
 smile 
Ужос из за пользовательского типа такой огород городить! Я в шоке.
 smile 

Автор: turist 3.9.2007, 11:06
Ну можешь словарь юзать:

Код

d = {}
d['mil'] = 0
d['sec']  = 0
d['word'] = ''


или

Код

d = dict(mil=0, sec=0, word='')


Дело в том, что не все привычные способы работы в других языках прямо переносятся в python. Тут например больше работают со словарями, списками и т.п.

Автор: wirw 3.9.2007, 11:54
Ага спасиб...
И динамические массивы как в дельфях не состряпаеш, всё списки, списки, хоть одни плюс разнородные обьекты можно пихать.
Вообщем первые впечатления о Питоне - Шок.
Пойду напьюсь!

Автор: setq 3.9.2007, 12:03
В Питоне просто:
Код

class MyType:
    pass


 smile 

Автор: turist 3.9.2007, 15:17
Цитата(wirw @ 3.9.2007,  11:54)
И динамические массивы как в дельфях не состряпаеш, всё списки, списки, хоть одни плюс разнородные обьекты можно пихать.
Вообщем первые впечатления о Питоне - Шок.
Пойду напьюсь!

Я ж грю, надо мыслить не по-делфийски. Лучше спрашивай, как что-то определённое реализовать, а не как "сделать так же, как в делфи" smile 

P.S. Я тут ща С++ника переучиваю не писать на Питоне плюсами. Вроде через месяц уже понеслась работа. Советую книгу "Dive into Python"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)