Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Этот "дребезжащий мусор" просто надоел. Код становится нечитаемый, потому что не видно сути. Есть какой- то способ писать обращение к членам класса напрямую без self (и другого заменителя)?
28 ноя 18, 13:26    [21747274]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
Нет
28 ноя 18, 13:37    [21747294]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL,

А можно некий пример на неком псевдопитоне, как вы себе это представляете?
28 ноя 18, 16:40    [21747628]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
Лысый дядька,

Не стоит обращать на него внимания. ТС любит по каждой мелочи бежать и жаловаться на форум на тяжёлую жизнь.
28 ноя 18, 17:13    [21747673]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Лысый дядька
AlekseySQL,

А можно некий пример на неком псевдопитоне, как вы себе это представляете?


Возьмите любой код класса на С++ / Java: там при обращение к членам / методам внутри класса не надо дополнительных танцев с бубном. Код получается элегантным, потому что не содержит лишних ничего- незначащих синтаксических элементов.
28 ноя 18, 18:14    [21747756]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL
Возьмите любой код класса на С++ / Java: там при обращение к членам / методам внутри класса не надо дополнительных танцев с бубном.

С интересом посмотрю на Java-код с переменными и функциями в глобальном пространстве имен. Можете показать?
28 ноя 18, 19:08    [21747813]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
AlekseySQL
Лысый дядька
AlekseySQL,

А можно некий пример на неком псевдопитоне, как вы себе это представляете?


Возьмите любой код класса на С++ / Java: там при обращение к членам / методам внутри класса не надо дополнительных танцев с бубном. Код получается элегантным, потому что не содержит лишних ничего- незначащих синтаксических элементов.

Только с питоном такое не пройдёт.
Вот представь себе, что должен делать питон в таком случае в отсутствие обязательного self?
class A:
    def foo():
        var = "test"

obj = A()
obj.foo()

Должен ли у инстанса obj появиться новый аттрибут var со значением "test" или же ты просто в скопе метода foo() объявляешь переменную?
Точно так же в Python'е нет ADL, как в C++ и прочих implicit приблуд, а всё делается явным образом:
def bar(x):
    print("Hello")

class A:
    def bar(self):
        print("Baz")
        
    def foo(self):
        bar(self)

obj = A()
obj.foo()

В C++ подобный код бы вывел "Baz" а не "Hello", как в питоне.

Тебе когда-нибудь надоест жаловаться, что в сутках 24 часа, а не 36, и что на севере холодно, в то время как на юге тепло?
Не нравится питон, выбери любой другой язык. Вон, например, вокруг Kotlin'а сейчас сколько хайпа.
Или напиши уже свой идеальный и душевный язык программирования.
28 ноя 18, 19:20    [21747829]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
NekZ
Тебе когда-нибудь надоест жаловаться, что в сутках 24 часа, а не 36, и что на севере холодно, в то время как на юге тепло?
Не нравится питон, выбери любой другой язык. Вон, например, вокруг Kotlin'а сейчас сколько хайпа.
Или напиши уже свой идеальный и душевный язык программирования.


Python всего- навсего язык программирования. Поэтому я отношусь к нему утилитарно. Вот, например, простейший код, над которым надо помедитировать, чтобы понять что он делает:
self.a = self.b + self.c/self.d


Если хочется динамически добавлять члены объекта, то для этих более редких случаев как раз можно использовать self (что будет даже удобно при чтении, поскольку выделит эту часть кода), а области видимости разрешать также, как это сделано в функциях (чтобы было единообразие).
29 ноя 18, 07:47    [21748014]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL
Вот, например, простейший код, над которым надо помедитировать


Мне кажется ты в жизни написал не более пары десятков строк кода
29 ноя 18, 08:44    [21748032]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Лысый дядька
AlekseySQL
Вот, например, простейший код, над которым надо помедитировать


Мне кажется ты в жизни написал не более пары десятков строк кода


Мы можем, конечно, заниматься взаимными оскорблениями и упреками. Но это неэффективный путь.

По сути вопроса: приведенный мной код для его понимания нужно ЧИТАТЬ, его невозможно ухватить бросив один беглый взгляд. А код должен быть ПРОСМАТРИВАЕМЫМ, только тогда программировать становится легко и размер проекта легко растет количественно. Наоборот, если код написан сложно, то на определенном размере проекта он просто перестает расти: программист ходит на работу, ужасно устает, но по факту выхлоп практически нулевой.

В свое время я познакомился с потрясающей книгой Роберта Мартина "Чистый код", которая не мной признана бестселлером. Там автор приводит такую аналогию: код должен быть похож на газетную статью. Согласитесь, что ушлые журналисты составляют газетные статьи так, что их можно просто просматривать, в целом понимая суть изложенного. Собственно только легкость и чистота отличает код сеньора (а джун сколько не тужится, у него все равно получаются ребусы).
29 ноя 18, 10:05    [21748107]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13505
Лысый дядька
AlekseySQL
Возьмите любой код класса на С++ / Java: там при обращение к членам / методам внутри класса не надо дополнительных танцев с бубном.

С интересом посмотрю на Java-код с переменными и функциями в глобальном пространстве имен. Можете показать?


К сообщению приложен файл. Размер - 68Kb
29 ноя 18, 11:57    [21748338]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
А есть в языке какие- нибудь макро- подстановки, типа define в С++?

Тогда бы я в своем коде зарезервировал какой- нибудь символ и использовало его исключительно в качестве self.
30 ноя 18, 14:04    [21749967]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
AlekseySQL
А есть в языке какие- нибудь макро- подстановки, типа define в С++?

Тогда бы я в своем коде зарезервировал какой- нибудь символ и использовало его исключительно в качестве self.

Опять ты про C++. "В чужой монастырь со своим уставом не ходят".
Во-первых, "self" не является ключевым словом. Ты можешь вместо него писать this или что-нибудь ещё.
Во-вторых, если уж так сильно хочется препроцессинга, можешь попытать удачу с Jinja2 (это было бы забавно наблюдать со стороны).
30 ноя 18, 15:33    [21750181]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL,

Ты не ответил, на вопрос, как бы ты видел программу на питоне, без self. Плюс к этому тебе нужны тебе еще и макросы на питоне. Повторю вопрос - покажи программу на питоне с классами без self и плюс еще с макросами. Как она должна выглядеть? Ответ "как Джава" не принимается, ибо Джава уже есть и другой не нужно. Покажи промер кода.
30 ноя 18, 16:18    [21750303]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Лысый дядька
AlekseySQL,

Ты не ответил, на вопрос, как бы ты видел программу на питоне, без self. Плюс к этому тебе нужны тебе еще и макросы на питоне. Повторю вопрос - покажи программу на питоне с классами без self и плюс еще с макросами. Как она должна выглядеть? Ответ "как Джава" не принимается, ибо Джава уже есть и другой не нужно. Покажи промер кода.


Я уже писал решение: динамическое добавление атрибутов делать с помощью self, а область видимости разрешать как у функций.
30 ноя 18, 16:43    [21750389]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL,
ну от вас же ждут пример программы, а не словесное ее описание. Давайте пример.
30 ноя 18, 17:35    [21750497]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Лысый дядька
AlekseySQL,
ну от вас же ждут пример программы, а не словесное ее описание. Давайте пример.


Если бы я знал как это сделать, то не задавал этот вопрос в топике. Может например, существуют какие- то классы, которые позволяют это сделать(например, недавно в языке появились классы данных).
30 ноя 18, 17:38    [21750502]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL,

Так от вас ждут пример на выдуманном питоне, таком как вы его видите для себя. Напишите программу на несуществующем сейчас питонге, так как он бы вас устраивал.
30 ноя 18, 17:42    [21750519]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13505
Лысый дядька
AlekseySQL,

Так от вас ждут пример на выдуманном питоне, таком как вы его видите для себя. Напишите программу на несуществующем сейчас питонге, так как он бы вас устраивал.


Да не проблема это записать как на яве, только работать не будет.
30 ноя 18, 21:42    [21750792]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
А может есть IDE, которые позволяют настроить препроцессинг? Ведь по логике сделать банальные замены в тексовом файле для IDE не проблема...
1 дек 18, 08:42    [21750902]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Чтобы было понятно, что вопрос не высосан из пальца прилагаю скриншот своего реального кода, на котором self торчит отовсюду. Да и дело не в доле, занимаемой self, а в том, что я физически чувствую усталость при работе с подобным кодом.

К сообщению приложен файл. Размер - 111Kb
1 дек 18, 08:50    [21750903]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
AlekseySQL,

Когда пишешь отборный говнокод, то, и правда, виноват только язык, а не ты сам.
1 дек 18, 11:07    [21750940]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
NekZ, это код изменения состояния загрузчика внешних данных в зависимости от ответа сервера (варьируется интервал выполнения запросов). Действительно может показаться, что функция не разделена на более мелкие логические составляющие. Изначально я пошел по второму пути и создал несколько маленьких функций, в следствии чего пропало понимание последовательности в цепи состояний, поскольку разрозненные функции не давали общую картину.

Причем деление на более мелкие функции не снимает необходимости везде писать тот же самый self. Его также неприлично много, и он также "загораживает" реальный код.
1 дек 18, 11:18    [21750943]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
Hett
Да не проблема это записать как на яве, только работать не будет.

Разумеется, не будет. Вот как только ТС попытается написать программу на питоне как на яве, он немедленно поймет, зачем там нужен self. Пока он только тупит и пускает пузыри, как обосравшаяся девочка из младшей группы детсада, о чем с ним вообще говорить?
1 дек 18, 17:21    [21751056]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
vkle
Member

Откуда: Самара
Сообщений: 14624
Ну не нравится синтаксис этого языка, так почему бы не писать на том, который нравится? Какой-то весьма странный вопрос в условиях, когда языков программирования как грязи...
1 дек 18, 17:27    [21751057]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Лысый дядька
Hett
Да не проблема это записать как на яве, только работать не будет.

Разумеется, не будет. Вот как только ТС попытается написать программу на питоне как на яве, он немедленно поймет, зачем там нужен self. Пока он только тупит и пускает пузыри, как обосравшаяся девочка из младшей группы детсада, о чем с ним вообще говорить?


А чем препроцессинг мешает идиологии python? Например, если вместо self. у меня в коде будет @, то как это сломает динамичность языка или не позволит разрешить области видимости? Повторяю: я использую Python УТИЛИТАРНО, а не религиозно. Мне надо чтобы работало, а веру в идеальность Python оставьте себе.
1 дек 18, 19:28    [21751094]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
vkle
Ну не нравится синтаксис этого языка, так почему бы не писать на том, который нравится? Какой-то весьма странный вопрос в условиях, когда языков программирования как грязи...


Потому что не существует ничего идеального. И вся жизнь человека сводится к выбору не сильно корявого решения и допиливания до приемлемого результата (чем я сейчас и занимаюсь). Повторюсь, я не верю в Python, как в Бога, я его ИСПОЛЬЗУЮ.
1 дек 18, 19:32    [21751097]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Изопропил
Member

Откуда:
Сообщений: 31109
AlekseySQL
vkle
Ну не нравится синтаксис этого языка, так почему бы не писать на том, который нравится? Какой-то весьма странный вопрос в условиях, когда языков программирования как грязи...


Потому что не существует ничего идеального. И вся жизнь человека сводится к выбору не сильно корявого решения и допиливания до приемлемого результата (чем я сейчас и занимаюсь). Повторюсь, я не верю в Python, как в Бога, я его ИСПОЛЬЗУЮ.

ну напиши себе препроцессор
1 дек 18, 20:21    [21751116]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Изопропил
ну напиши себе препроцессор


Так просто отделаться не получится: надо будет в IDE добавлять поддержку нового синтаксиса, что уже значительно сложнее.
1 дек 18, 20:36    [21751118]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Было бы конечно здорово, если бы существовало два типа классов: статические (без self) и динамические (с self). Первые бы работали быстро и были простые (не содержали лишних элементов языка), а вторые можно было бы использовать в метапрограммировании (создавать "на лету"). Согласитесь, что метапрограммированием мало кто занимается (да если и занимается, то не везде), но все должны платить за эти возможности: низкая скорость работы + замусоренность кода.
1 дек 18, 20:46    [21751122]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL,
Ну и где пример кода на идеальном питоне? Покажи.
1 дек 18, 21:03    [21751125]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL
А чем препроцессинг мешает идиологии python?

Ничем. Покажи пример.
1 дек 18, 21:05    [21751127]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13505
Лысый дядька
AlekseySQL
А чем препроцессинг мешает идиологии python?

Ничем. Покажи пример.


Пример был, удаляешь из него все вхождения self. Проблемы?
1 дек 18, 22:47    [21751166]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Hett
Лысый дядька
пропущено...

Ничем. Покажи пример.


Пример был, удаляешь из него все вхождения self. Проблемы?


Человек пишет много однотипных бессмысленных сообщений (в духе: напиши код, который в топике спрашиваешь как написать). Прошу не реагируйте на них, и он уйдет.
2 дек 18, 01:41    [21751241]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Сейчас прихожу к такому спорному решению (чтобы меньше было дребезжащего self.):
1. Константные члены делать глобальными переменными модуля (даже если логически они и относятся к объекту).
2. Переменные нужные только в одном месте не делать членами объекта, а создавать в виде локальных переменных метода (и передавать их вниз по стеку в качестве параметров методов).
3. Приватные методы объекта делать глобальными процедурами модуля.

Т.е. в объекте останутся только (и их нужно будет писать вместе с self):
1. Переменные, меняющие свое состояние во время жизни объекта.
2. Публичные методы.
2 дек 18, 11:03    [21751287]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Изопропил
Member

Откуда:
Сообщений: 31109
AlekseySQL,

результат опубликуй здесь - https://www.govnokod.ru/python
2 дек 18, 11:32    [21751295]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Изопропил
AlekseySQL,

результат опубликуй здесь - https://www.govnokod.ru/python


Это мой любимый сайт! :)
2 дек 18, 20:42    [21751564]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
Hett
Пример был, удаляешь из него все вхождения self. Проблемы?


Проблема в том, что ссылка на объект в питоне необходима по причине пересечения областей видимости переменных.

class Foo:
    a = 1
    
    def __init__(self):
        self.a = 2
    
        class Bar:
            a = 3
            
            def __init__(this):
                this.a = 4
 
                class Baz:
                     a = 5
                     def __init__(pointer):
                          pointer.a = 6
  


о чем вопрошающему было поведано в первых сообщениях. Если это не понятно, то надо заняться каким-нибудь менее интеллектуальным занятием. Если ТС видит способ, как можно задать область видимости без ссылки на объект, пусть покажет код. Убрать ссылку - вариант, как понимаешь, плохой.
3 дек 18, 10:04    [21751794]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Лысый дядька
Hett
Пример был, удаляешь из него все вхождения self. Проблемы?


Проблема в том, что ссылка на объект в питоне необходима по причине пересечения областей видимости переменных.

class Foo:
    a = 1
    
    def __init__(self):
        self.a = 2
    
        class Bar:
            a = 3
            
            def __init__(this):
                this.a = 4
 
                class Baz:
                     a = 5
                     def __init__(pointer):
                          pointer.a = 6
  


о чем вопрошающему было поведано в первых сообщениях. Если это не понятно, то надо заняться каким-нибудь менее интеллектуальным занятием. Если ТС видит способ, как можно задать область видимости без ссылки на объект, пусть покажет код. Убрать ссылку - вариант, как понимаешь, плохой.


Вот, господа! Теперь есть возможность сравнить чей говнокод говнокодистее: то что я предложил выше или подобные чудесные конструкции. Ведь именно ради возможности ваять подобный чудный код мне объясняют, что мое решение ужасно.
3 дек 18, 11:56    [21751874]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL
Вот, господа! Теперь есть возможность сравнить чей говнокод говнокодистее: то что я предложил выше или подобные чудесные конструкции. Ведь именно ради возможности ваять подобный чудный код мне объясняют, что мое решение ужасно.


Возьми и напиши господину Гвидо Ван Россуму в Америку, так мол и так, уважаемый Гвидо, двадцать лет назад ты сделал на мой взгляд большую ошибку сделав питон динамическим языком программирования. Я вот, например, считаю, что это плохо и неправильно. Но если в новой версии языка, ты уберешь все динамимические возможности, то это даст мне сил писать программы без богопротивного self, и это будет хорошо, потому что я тут написал пару десятков строчек говнокода и ментально устал видеть его во всех объектах. А вообще было бы хорошо, добавить еще статическую типизацию, интерфейсы и дженерики. И пожалуйста, переименуй этот питон во что-нибудь челевеческое. Например в ПиДжаву или Py++, а то название дурацкое и мне не нравится. Мальчик Лёша, девятнадцать годиков.
3 дек 18, 12:17    [21751894]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
Лысый дядька
AlekseySQL
Вот, господа! Теперь есть возможность сравнить чей говнокод говнокодистее: то что я предложил выше или подобные чудесные конструкции. Ведь именно ради возможности ваять подобный чудный код мне объясняют, что мое решение ужасно.


Возьми и напиши господину Гвидо Ван Россуму в Америку, так мол и так, уважаемый Гвидо, двадцать лет назад ты сделал на мой взгляд большую ошибку сделав питон динамическим языком программирования. Я вот, например, считаю, что это плохо и неправильно. Но если в новой версии языка, ты уберешь все динамимические возможности, то это даст мне сил писать программы без богопротивного self, и это будет хорошо, потому что я тут написал пару десятков строчек говнокода и ментально устал видеть его во всех объектах. А вообще было бы хорошо, добавить еще статическую типизацию, интерфейсы и дженерики. И пожалуйста, переименуй этот питон во что-нибудь челевеческое. Например в ПиДжаву или Py++, а то название дурацкое и мне не нравится. Мальчик Лёша, девятнадцать годиков.

Только пусть отправит ему это 30-го марта, чтобы тов. ван Россуму было время подготовить лучшую первоапрельскую шутку.
3 дек 18, 12:50    [21751936]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13505
Лысый дядька
Hett
Пример был, удаляешь из него все вхождения self. Проблемы?


Проблема в том, что ссылка на объект в питоне необходима по причине пересечения областей видимости переменных.

class Foo:
    a = 1
    
    def __init__(self):
        self.a = 2
    
        class Bar:
            a = 3
            
            def __init__(this):
                this.a = 4
 
                class Baz:
                     a = 5
                     def __init__(pointer):
                          pointer.a = 6
  


о чем вопрошающему было поведано в первых сообщениях. Если это не понятно, то надо заняться каким-нибудь менее интеллектуальным занятием. Если ТС видит способ, как можно задать область видимости без ссылки на объект, пусть покажет код. Убрать ссылку - вариант, как понимаешь, плохой.



Ну тогда рил проблем.
Теперь еще больше не люблю питон. Хотя это наверное все дело вкуса.
3 дек 18, 12:54    [21751945]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Лысый дядька
Возьми и напиши господину Гвидо Ван Россуму в Америку, так мол и так, уважаемый Гвидо, двадцать лет назад ты сделал на мой взгляд большую ошибку сделав питон динамическим языком программирования. Я вот, например, считаю, что это плохо и неправильно. Но если в новой версии языка, ты уберешь все динамимические возможности, то это даст мне сил писать программы без богопротивного self, и это будет хорошо, потому что я тут написал пару десятков строчек говнокода и ментально устал видеть его во всех объектах. А вообще было бы хорошо, добавить еще статическую типизацию, интерфейсы и дженерики. И пожалуйста, переименуй этот питон во что-нибудь челевеческое. Например в ПиДжаву или Py++, а то название дурацкое и мне не нравится. Мальчик Лёша, девятнадцать годиков.


У вас религиозный подход к языку: вы даже вопросы о возможностях воспринимаете как враждебные действия. А ведь возможно мой вопрос как- то легко решается (например, препроцессингом в некоторых IDE или специфичными объектами из кучи внешних библиотек). А когда я нашел, что вполне возможно для этого использовать модули с небольшим объектом в качестве интерфейса, то тоже оказывается плохо, потому что ... не по религии.
3 дек 18, 13:07    [21751958]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13505
AlekseySQL,

а почему именно питон? может дейстсвительно лучше яву взять, если ее философия ближе?
3 дек 18, 13:17    [21751969]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
AlekseySQL
У вас религиозный подход к языку: вы даже вопросы о возможностях воспринимаете как враждебные действия. А ведь возможно мой вопрос как- то легко решается (например, препроцессингом в некоторых IDE или специфичными объектами из кучи внешних библиотек). А когда я нашел, что вполне возможно для этого использовать модули с небольшим объектом в качестве интерфейса, то тоже оказывается плохо, потому что ... не по религии.

IDE, препроцессящая твой код, это прямо как Двое-Из-Ларца из м/ф "Вовка в Тридевятом царстве", со всеми вытекающими отсюда последствиями,
учитывая, что у каждого разработчика, возможна своя версия Двоих-Из-Ларца.
А насчёт религии, я тебе уже напомнил пословицу про устав и монастырь. Ни от кого на этом форуме не было столько сравнений (PHP|Perl|Python) с C++.
И тебе уже не раз было сказано, не нравится в нашем монастыре -- ищи другой, нынче их много и более новых/модных/молодёжных.
3 дек 18, 13:54    [21752019]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL,

То чем ты сейчас занимаешься называется "душный троллинг". Суть его очень проста - непрерывно тупить оставаясь максимально политкорректным. Твой стартовый вопрос уже можно было бы оставить без внимания, потому что он задается от лица человека, который якобы продолжительное время работает с питоном, настолько продолжительное, что ему успели надоесть некоторые особенности языка. При этом вопрошается об азбучных истинах, которые разжевываются в кашу в любом букваре. Вот уже тут все понятно и можно смело тебя посылать по направлению. Ну ладно, бог с ним, ответ ты получил. И что на этом успокоился? Нифига, каждым новым сообщением включается новая итерация занудного гундоса, с которым забыли посовещаться, как же нужно было проектировать язык. Это кому-то нужно? Если ты даже после вот этого сообщения 21751794, не понял, почему твой вопрос тупой, ну это либо крайняя тупость, либо троллинг. И суть этого троллинга тоже ведь понятна: тебе скучно. Работаешь ты каким-нибудь эникейщиком в конторе "Вектор" и не с кем тебе поболтать о славных временах студенчества и страданиями над Бобом Мартином.
3 дек 18, 14:54    [21752131]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Hett
AlekseySQL,

а почему именно питон? может дейстсвительно лучше яву взять, если ее философия ближе?


Я уже писал, что нет ничего идеального и нужно брать более- менее подходящее, а потом доводить до ума. Мне в Python не нравится только self. , который засоряет код и делает его не просматриваемым (а приходится весь код читать и поэтому уставать).
4 дек 18, 08:50    [21752574]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
NekZ
IDE, препроцессящая твой код, это прямо как Двое-Из-Ларца из м/ф "Вовка в Тридевятом царстве", со всеми вытекающими отсюда последствиями,
учитывая, что у каждого разработчика, возможна своя версия Двоих-Из-Ларца.


Как же тогда IDE делает другие операции, например, рефакторинг?

NekZ
А насчёт религии, я тебе уже напомнил пословицу про устав и монастырь. Ни от кого на этом форуме не было столько сравнений (PHP|Perl|Python) с C++.


От меня не было ни одного сравнения языков. Ни одного. Приведите, пожалуйста, ссылку на подобные сравнения.

NekZ
И тебе уже не раз было сказано, не нравится в нашем монастыре -- ищи другой, нынче их много и более новых/модных/молодёжных.


Вопрос, который я поднял не высосан из пальца (и для оправдания я уже приводил кусок кода, который на мой взгляд трудночитаем из- за замусоривания 'self.'). Не только я придерживаюсь такой точки зрения, посмотрите что про это думает google:

К сообщению приложен файл. Размер - 81Kb
4 дек 18, 09:03    [21752583]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
Гугл, безусловно, надежный индикатор чаяний идиотов.

Картинка с другого сайта.

Картинка с другого сайта.

Картинка с другого сайта.
4 дек 18, 09:45    [21752618]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
AlekseySQL
Member

Откуда:
Сообщений: 952
Лысый дядька, зачем вы вводили начальные буквы слов 'bra', 'generi', 'typing'? Разумеется вы получили бы именно такие ответы. Зачем это жульничество, вы местных форумчан считаете идиотами?

А теперь давайте проверим хватит ли у вас честности привести скриншот полученный по фразе "pyhton with " (ведь я использовал фразу "python without ").
4 дек 18, 10:41    [21752666]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
AlekseySQL,

Держи, гений мысли и отец русской демократии

Картинка с другого сайта.
4 дек 18, 11:58    [21752732]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
NekZ
Member

Откуда: Санкт-Петербург
Сообщений: 3563
AlekseySQL
Как же тогда IDE делает другие операции, например, рефакторинг?

Не путай рефакторинг и препроцессинг. Рефакторинг в IDE, это единоразовая операция, которую ты сам наглядно контролируешь.
Препроцессинг (если мы говорим о препроцессоре C/C++), это автономная и обязательная операция, преобразования одного кода в другой.
IDE здесь никаким образом не привязана, этим занимается компилятор. Ты явно путаешь IDE и компилятор/интерпретатор.
Ждём новых перлов типа рефакторинга от компилятора.

AlekseySQL
От меня не было ни одного сравнения языков. Ни одного. Приведите, пожалуйста, ссылку на подобные сравнения.

Включил дурачка? "А вот в С++ оно вот так вот, а в Python'е, оно совсем иначе", размазано тонким слоем по большинству твоих тем здесь.

AlekseySQL
Вопрос, который я поднял не высосан из пальца (и для оправдания я уже приводил кусок кода, который на мой взгляд трудночитаем из- за замусоривания 'self.'). Не только я придерживаюсь такой точки зрения, посмотрите что про это думает google:

Гугл ничего не думает.
4 дек 18, 12:33    [21752776]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4612
AlekseySQL
Этот "дребезжащий мусор" просто надоел. Код становится нечитаемый, потому что не видно сути. Есть какой- то способ писать обращение к членам класса напрямую без self (и другого заменителя)?
не получится
ИМХО: родовая травма языка, которую не исправить из-за кучи легаци (3.0 то едва прожевали)

в более поздних языках проблема обычно решается обязательной декларацией переменных.
9 дек 18, 15:13    [21758466]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Gwa
Member

Откуда:
Сообщений: 1
Допустим в классе есть объект, к которому обращение идёт по self.SomeObject
и есть метод класса, в котором есть множество обращений к этому объекту
Тогда в начале метода определяем синоним
so = self.SomeObject
и далее обращаемся к нему по so
17 фев 19, 19:05    [21812157]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
Gwa
Допустим в классе есть объект, к которому обращение идёт по self.SomeObject
и есть метод класса, в котором есть множество обращений к этому объекту
Тогда в начале метода определяем синоним
so = self.SomeObject
и далее обращаемся к нему по so


Крайне важное замечание! Но что именно вы хотели этим сказать? Что в питоне можно использовать переменные? А кто-то не знал или спорил с этим утверждением?
18 фев 19, 09:02    [21812514]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1940
Лысый дядька
Hett
Пример был, удаляешь из него все вхождения self. Проблемы?


Проблема в том, что ссылка на объект в питоне необходима по причине пересечения областей видимости переменных.

class Foo:
    a = 1
    
    def __init__(self):
        self.a = 2
    
        class Bar:
            a = 3
            
            def __init__(this):
                this.a = 4
 
                class Baz:
                     a = 5
                     def __init__(pointer):
                          pointer.a = 6
  


о чем вопрошающему было поведано в первых сообщениях. Если это не понятно, то надо заняться каким-нибудь менее интеллектуальным занятием. Если ТС видит способ, как можно задать область видимости без ссылки на объект, пусть покажет код. Убрать ссылку - вариант, как понимаешь, плохой.


это несомненная правда. Но в синтакисе ruby смогли решить одной закорючкой. Отделив область видимости объекта.... ну так, к слову.
18 фев 19, 13:53    [21812981]     Ответить | Цитировать Сообщить модератору
 Re: В Python можно как-то в классах не писать self ?  [new]
Лысый дядька
Member

Откуда:
Сообщений: 356
Vladimir Baskakov
это несомненная правда. Но в синтакисе ruby смогли решить одной закорючкой. Отделив область видимости объекта.... ну так, к слову.


Покажите цитируемый вами код переписанный на руби, чтоб не к слову а по факту.
18 фев 19, 17:14    [21813431]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / PHP, Perl, Python Ответить