
Herman
26.03.2017
08:34:04
Вопросик
Как сделать переменную метода локальной?
Ведь когда инициализируется, она становится доступна из любой части класса
Можно как-то локализовать внутри функции?

Google

Centrino
26.03.2017
08:35:50

Herman
26.03.2017
08:35:51
*метода

Скрудж
26.03.2017
08:35:51
А есть ли смысл делать на PyQT эмулятор работы с каким-либо сайтом? Аля, кликанье по кнопкам/ввод данных и поддержку множества аккаунтов. Или затратно это?

Aleksey
26.03.2017
08:36:15

Aragaer
26.03.2017
08:36:37
у любой переменной область видимости же - соответствующий блок
метод это блок

Herman
26.03.2017
08:36:44
ну нет. если переменная с self, то доступна из любой части класса

Artem
26.03.2017
08:37:16
лол, они еще и в рандомном порядке. все намекает на то, что не стоит так делать

Aragaer
26.03.2017
08:37:18
что такое "переменная с self"?

Скрудж
26.03.2017
08:37:31

Aragaer
26.03.2017
08:37:39
сам self это аргумент функции и имеет видимость в пределах функции
self это переменная

Google

Скрудж
26.03.2017
08:37:49
LOL

Aragaer
26.03.2017
08:37:54
self.variable это не переменная, а поле

Artem
26.03.2017
08:38:14

Скрудж
26.03.2017
08:38:28

Nikolay
26.03.2017
08:38:36
костыль

Artem
26.03.2017
08:39:35
Класс

Herman
26.03.2017
08:40:04

Centrino
26.03.2017
08:40:04
что такого?

Artem
26.03.2017
08:40:19
перепуталось все фу

Centrino
26.03.2017
08:40:29
так никто не обещал порядок

Aragaer
26.03.2017
08:40:33
ну то есть self это не какое-то волшебное слово. Просто при вызове bound метода первым аргументом в метод пойдет тот объект, у которого метод вызвали. И по соглашению (небось какой-то pep) этот аргумент называется self

Centrino
26.03.2017
08:41:58
сколько много магических мета-методов у классов

Aragaer
26.03.2017
08:42:02
>>> class x():
... def f(this):
... print(this)
...
>>> t=x()
>>> t
<__main__.x instance at 0xb723eb0c>
>>> t.f()
<__main__.x instance at 0xb723eb0c>
вот я назвал его this и тоже все пашет

Centrino
26.03.2017
08:42:31
JS-style

Nikolay
26.03.2017
08:42:32
self - договоренность

J
26.03.2017
08:42:37
всем привет! есть задача: составить и нарисовать uml диаграмму средствами python. что посоветуете?

Artem
26.03.2017
08:42:39
inspect тащит

Centrino
26.03.2017
08:42:51
буду хипстером, буду писать теперь всегда this, вместо self

Google

Nikolay
26.03.2017
08:42:58
?

Скрудж
26.03.2017
08:43:23

Evgeniy
26.03.2017
08:43:25

Centrino
26.03.2017
08:43:58
??
по твоей аве, я уже вижу что тебе не нравится

Aragaer
26.03.2017
08:44:27
ща еще смешнее покажу

Artem
26.03.2017
08:44:35
спасибо

Скрудж
26.03.2017
08:44:54

Aragaer
26.03.2017
08:45:32
>>> class x():
... def f(this):
... print(this)
...
>>> t=x()
>>> t
<__main__.x instance at 0xb7290aec>
>>> x.f(t)
<__main__.x instance at 0xb7290aec>

Centrino
26.03.2017
08:45:53
у меня всегда было зашоренное мышление, а теперь я понимаю что self был навязан и я могу писать как хочу и что хочу

Aragaer
26.03.2017
08:46:04
я вызвал несвязанный метод (так оно называется?) и явно туда первым аргументом передал то, что попало в this

Скрудж
26.03.2017
08:46:21

Aragaer
26.03.2017
08:46:57
ну ... это так, делать так не надо, но нужно понимать, что магии меньше, чем кажется.

Aragaer
26.03.2017
08:47:18
вместо заучивания волшебных слов стоит осознать, что именно происходит

Скрудж
26.03.2017
08:47:53

Centrino
26.03.2017
08:48:32

Скрудж
26.03.2017
08:48:43
ладно :(

Aragaer
26.03.2017
08:50:56
Always use self for the first argument to instance methods.
Always use cls for the first argument to class methods.
это pep8. То есть self и cls это соглашение, а не требование языка

Aleksey
26.03.2017
08:57:05
Друзья, как там с python вакансиями в Европе да в США, есть хоть спрос???

Roman
26.03.2017
09:00:37
если есть предложения, значит и есть спрос

Google

Alexey
26.03.2017
09:01:35

Игорь
26.03.2017
09:15:35

Centrino
26.03.2017
09:16:11
для меня вся магия в мета функциях с двух подчеркиваний
это чистое волшебство

Nikolay
26.03.2017
09:16:29
?

Centrino
26.03.2017
09:16:54
там можно найти разные интересные штуки, которыми обычно не пользуешься

Игорь
26.03.2017
09:18:27
https://habrahabr.ru/post/186608/

Denis
26.03.2017
09:19:10
Посмотрел спич про переменные, есть такой вопрос
Помню в Objective-C была такая вещь как блоки
Подскажет кто есть ли такое в питончике)?

Admin
ERROR: S client not available

Игорь
26.03.2017
09:22:32

Centrino
26.03.2017
09:23:03
что такое эти блоки?

Denis
26.03.2017
09:23:09
А так чтобы передавать как переменные, подставлять в рантайме)?
Это я вряд ли реализую

Игорь
26.03.2017
09:23:11
лично я такого не встречал и представить не могу где это может понадобиться

Centrino
26.03.2017
09:23:16

Denis
26.03.2017
09:23:19
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html

Игорь
26.03.2017
09:24:50

Centrino
26.03.2017
09:25:20
замыкание?

Denis
26.03.2017
09:25:57
Мб
Не то чтобы это было необходимо, просто интересно попробовать с ними если есть

Centrino
26.03.2017
09:26:49
в качестве параметра передать функцию, которая будет замыкание

Google

Игорь
26.03.2017
09:28:51
замыкание?
да. судя по тому что я прочитал, да
https://www.ibm.com/developerworks/ru/library/l-python_details_03/

Denis
26.03.2017
09:29:49

no
26.03.2017
09:39:02
в питончике вроде компилятор не ругается, только ворнит на фигурньіе скобки
проверил, ругается, 2.7 точно

Игорь
26.03.2017
09:41:21
замыкание подходит под то, что я нагуглил

Denis
26.03.2017
09:42:06

Игорь
26.03.2017
09:42:19

no
26.03.2017
09:42:41
ок ок
да тьі прав

Artem
26.03.2017
09:44:56
не только дикт
if 1: {print("ok")} - корректный код

Herman
26.03.2017
09:45:09
¿
шо плюсы еще учить

Aragaer
26.03.2017
09:47:14
class methods это методы класса, они принимают первым аргументом собственно класс
есть еще static methods, у них нет дополнительных аргументов

no
26.03.2017
09:47:53
Python creates a new scope for each module, class, function or generator expression (in Python 3.x also for list comprehensions). Apart from this, there are no nested scopes inside of functions.
вот потому я люблю классические с подобньіе язьіки больше)

Aragaer
26.03.2017
09:48:35
>>> class y():
... @classmethod
... def c(*args):
... print(args)
... @staticmethod
... def s(*args):
... print(args)
...
>>> y.c()
(<class __main__.y at 0xb7280d7c>,)
>>> y.s()
()