
Nikolay
11.07.2017
22:26:36
правда, это мало поможет

Oleg
11.07.2017
22:26:58
я могу брать переменную

Artem
11.07.2017
22:27:00
>>> class real_pr():
... def __init__(self):
... x = 0
... def incr_x():
... nonlocal x
... x += 1
... def decr_x():
... nonlocal x
... x -= 1
... def get_x():
... nonlocal x
... return x
... self.incr_x = incr_x
... self.decr_x = decr_x
... self.get_x = get_x
...
>>> p = real_pr()
>>> p.get_x()
0
>>> p.incr_x()
>>> p.get_x()
1
>>>

Oleg
11.07.2017
22:27:56
оо, вот это я хотел

Google

Oleg
11.07.2017
22:27:58
красиво

Artem
11.07.2017
22:27:59
>>> dir(p)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '
__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr
__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'decr_x', 'get_x', 'incr_x']

Oleg
11.07.2017
22:28:00
спасибо)
доходчиво
а приватный метод?
если объявлю в ините, то потеряю его в скопе другого метода?
# если не определю его у объекта

Artem
11.07.2017
22:31:42
ну все другие методы тебе тоже придется создавать в ините и явно присваивать

Oleg
11.07.2017
22:31:59
а
понял

Artem
11.07.2017
22:32:06
которые используют приватный метод, сделанный как локальный метод в ините

Oleg
11.07.2017
22:32:19
т.е. все объявление класса будет в ините?

Artem
11.07.2017
22:32:31
например да
понятно, что никакого ограничения на то, что это именно инит, нет

Google

Oleg
11.07.2017
22:33:04
ну да

Artem
11.07.2017
22:38:31

Artem
11.07.2017
22:38:44

Nikolay
11.07.2017
22:42:29
http://blog.sujeet.me/2012/10/python-tinkering-a-decorator-to-implement-private-methods-I.html
на что только народ не идет ради приватных методов

Denis
11.07.2017
22:52:27
Табы у тебя вместо пробелов
И строки длинные
И пробелов нет

Artem
11.07.2017
22:55:59
или просто инспект сломать

Jeka
11.07.2017
22:56:43
этот pylint можно удалить?
vs code linux

Artem
11.07.2017
22:57:05

Jeka
11.07.2017
22:57:26

Artem
11.07.2017
22:57:41
все реально

Nikolay
11.07.2017
22:58:28
это нереально
это довольно легко, заодно научишься правильно писать код

Jeka
11.07.2017
22:58:30
вот ща например на русский ругается, но он ж мне нужен

Nikolay
11.07.2017
22:59:05
у тебя питон хотя бы третий?

Jeka
11.07.2017
23:00:00
канеш

Google

Nikolay
11.07.2017
23:00:21
ну тем более тогда не должно на русский ругаться

Jeka
11.07.2017
23:00:56
ну например вот на рус ругается
text = '<a href="'+url+'">'+'сезон '+str(s)+' серия '+str(p)+'</a>'

Denis
11.07.2017
23:01:02
В начале файла стоит coding utf8?

Nikolay
11.07.2017
23:01:12
как ругается?

BlackAndOrange
11.07.2017
23:01:52
Трейсбек в студию
/report

Jeka
11.07.2017
23:05:20

Nikolay
11.07.2017
23:05:39
ибо в третьем питоне кодировка всегда по дефолту считается utf-8 и явно указывать это не надо

Jeka
11.07.2017
23:06:47
лол, орнул. теперь на coding utf-8 ругается

BlackAndOrange
11.07.2017
23:06:51
Или ты запускаешь через второй случайно

BlackAndOrange
11.07.2017
23:06:55
Потому что вообще-то не влияет

Jeka
11.07.2017
23:07:29
но он ругается

BlackAndOrange
11.07.2017
23:07:33
Трейсбек в студию, туда же
print(sys.version)

Jeka
11.07.2017
23:07:34
ща

Denis
11.07.2017
23:10:49
Докстринг напиши

Jeka
11.07.2017
23:11:16
а по русски

BlackAndOrange
11.07.2017
23:11:34
Это вообще не ошибка

Google

BlackAndOrange
11.07.2017
23:11:39
Это pylint ругается на качество кода

Denis
11.07.2017
23:12:06
Можно конкретно эту заигнорить
Наверно

Jeka
11.07.2017
23:18:42
лан, удалил pylinter
молод я еще для неговнокода

Denis
11.07.2017
23:19:51
Эх, зря

Jeka
11.07.2017
23:21:25
да и код онли для меня, и читаемый )))

Admin
ERROR: S client not available

Denis
11.07.2017
23:21:57
Привыкнешь говнокодить, потом на работу не возьмут

melancholiac
11.07.2017
23:22:48

Tigran
11.07.2017
23:23:15

Nikolay
11.07.2017
23:23:24
а vars()?
а что с ним? он просто __dict__ возвращает

Lucky
11.07.2017
23:24:26
Может попадётся контора с извращенским стайлгайдом

Nikolay
11.07.2017
23:24:36

Lucky
11.07.2017
23:25:03
И то верно

melancholiac
11.07.2017
23:25:19

Tigran
11.07.2017
23:25:26
атмосфера стартапа, все дела

Google

Nikolay
11.07.2017
23:25:50

melancholiac
11.07.2017
23:26:25
хм, выходит это реальный метод защиты и удержания скрытого состояния?
в отличии от __приватных_методов_и_переменных

Nikolay
11.07.2017
23:33:00

Artem
11.07.2017
23:35:32
>>> p.get_x.__closure__[0].cell_contents
1

Denis
11.07.2017
23:35:46
А поменять?

Oleg
11.07.2017
23:37:13
__closure__ обнулить?
Думаю это повлечет косяки в работе питона, не?

Denis
11.07.2017
23:37:43

Artem
11.07.2017
23:37:57
поменять сложнее

Denis
11.07.2017
23:38:07
Надо с дескрипторами ебаться, кажется

Oleg
11.07.2017
23:38:21
аа, в этом смысле поменять)

BlackAndOrange
11.07.2017
23:48:44
В Питоне почти всё можно поменять, на самом деле
Наверное, вообще всё, если постараться
Кроме встроенных имён
Не всех

Aleksandr
11.07.2017
23:50:14

BlackAndOrange
11.07.2017
23:51:03
Встроенных имён тоже
Попробуй сделать list.x = 1
Или хотя бы list.__getattr__ = ...