Форум сайта python.su
23
скажите а делают вообще так?:
например надо назначить свойство десяти кнопкам
или скопировать n файлов
используют ли для этого не цикл, а генератор
или map
def set_text(self): [self.but_tool[x].setText(str(x)) for x in self.but_tool]
class A: def __init__(self, n=None): self.n = n self.lab = Lab() if not self.n is None: self.lab.setText(self.n)
Отредактировано vrabey (Окт. 28, 2014 20:08:20)
Офлайн
857
vrabeyПохоже на ошибку, будто имя стёрли. А код должен быть таким, чтобы понятно было при первом прочтении, что он правильный.
используют ли для этого не цикл, а генератор
или map
vrabey__init__ - это обычный метод, он только не возвращает значение. Но в нём должно быть только то, что относится к инициализации экземпляра.
в классе можно принято ли использовать выражение с условием
не в методе
Офлайн
23
py.user.nextто есть при использовании генератора ухудшается только читаемость?
Когда пройдёт N лет и ты забудешь вообще, что это за программа, тогда такие остановки дадут о себе знать.
Офлайн
2
py.user.next
я слаб в написании многопотока, поэтому в ините использую вызов функций, например:
class abc(object): def __init___(self, some_value): if self.abc(some_value): self.qwe() ... if __name__=='__main__': from multiprocessing.dummy import Pool with Pool(20) as pool: pool.map(abc, some_value)
Отредактировано bs0d (Окт. 28, 2014 23:29:32)
Офлайн
2
vrabey
думаю все зависит от того, насколько этот код будет использоваться в дальнейшем
раньше я делал нечто:
def load_data(filename): with open(filename, 'r') as file: data_list = [line.strip() for line in file] file.close() return data_list r = load_data('abc.txt')
r = open('abc.txt').read().splitlines()
Офлайн
857
vrabeyНе, ещё память тратится на создание списка. Всё-таки список - это не генератор.
то есть при использовании генератора ухудшается только читаемость?
vrabeyМожно-то много чего, но смотри, к чему ты придёшь всё равно. Вот к чему придёшь в итоге (как все приходят), так и делай сразу.
и если случай не сложный и откоментирован то можно
bs0dФайл не закрываешь. Он закроется, конечно, но принято использовать with, который гарантирует закрытие.
теперь не заморачиваюсь:
bs0dВот методом тыка это изучать крайне тяжело. Прочитай какую-нибудь книгу сначала.
я слаб в написании многопотока
Отредактировано py.user.next (Окт. 28, 2014 23:46:27)
Офлайн