Уведомления

Группа в Telegram: @pythonsu

#1 Март 17, 2020 20:56:18

Modiswyn
Зарегистрирован: 2020-03-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

Такой нормальный, конкретный указатель, чтобы объект удалён, а он продолжает указывать на несуществующее место?

Для чего это надо.

 import random
class My_class:
  def __init__(self):
    x = random.choice(True, False)
lst = [My_class() for x in range(20)]
Теперь надо удалить из lst объекты для которых obj.x==False. Как это сделать? В плюсах я бы создал lst_1 с указателями на элементы lst, у которых x==False, после чего поудалял бы элементы lst_1 из lst. Хотя после этого lst_1 содержит указатели на пустое место, да и пенис бы с ним, он мне больше не нужен.

Конечно это можно решить и другими способами, но мне стало интересно в принципе. Да, я знаю толк в извращениях.

Офлайн

#2 Март 17, 2020 22:21:10

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

Modiswyn
после чего поудалял бы элементы lst_1 из lst
В плюсах то как раз нет проблем удалить элементы из std::list без временного списка.

 lst = [x for x in lst if x.x]

Можете считать что все объекты в питоне это указатели, это хорошее приближение к истине.



Офлайн

#3 Март 17, 2020 23:35:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

Modiswyn
В плюсах я бы создал lst_1 с указателями
По цппшному в питоне лучше не думать. После C++ Питон надо учить с нуля, как будто ничего не зная, потому что в нём всё по-другому делается. Так что прочитай книжку Dive Into Python 3.



Офлайн

#4 Март 18, 2020 12:16:20

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

doza_and
все объекты в питоне это указатели
при беглом ознакомлении с cpp так и показалось .. в чем отличия
py.user.next
По цппшному в питоне лучше не думать.
а в обратную сторону? по питоник в cpp



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Март 18, 2020 12:19:52)

Офлайн

#5 Март 18, 2020 12:57:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

Modiswyn
Придётся вам и плюсы тоже переучивать - указатели в с++ всё
https://www.fluentcpp.com/2018/04/01/cpp-will-no-longer-have-pointers/
ваша парадигма устарела и никто в современных реалиях так уже не кодит



Офлайн

#6 Март 18, 2020 18:27:18

Modiswyn
Зарегистрирован: 2020-03-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

FishHook
ModiswynПридётся вам и плюсы тоже переучивать - указатели в с++ всёhttps://www.fluentcpp.com/2018/04/01/cpp-will-no-longer-have-pointers/ваша парадигма устарела и никто в современных реалиях так уже не кодит
Вообще-то там написано, что удаление указателей - шутка.

Вобщем, главное я понял. Создать указатель невозможно. Это прискорбно.

Офлайн

#7 Март 18, 2020 18:47:48

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

AD0DE412
при беглом ознакомлении с cpp так и показалось .. в чем отличия
Отличие в том, что с указателями в C и в C++ можно проводить операции (добавлять число, отнимать число, вычитать один указатель из другого при условии их указания на один объект - например, из указателя на следующий элемент за концом массива можно вычесть указатель на начало этого же массива и таким образом получить длину массива, также указатели можно сравнивать на больше/меньше тоже в пределах одного объекта, и ещё указатели на поля в одной структуре тоже находятся в отношении больше/меньше в соответствии с очерёдностью этих полей в структуре).

AD0DE412
а в обратную сторону? по питоник в cpp
В обратную сторону ты многих элементов в цпп не найдёшь. Смотри, для C нужно изучать стиль C, для C++ нужно изучать стиль C++, для Python нужно изучать стиль Python. А стиль Python - это такая смесь элементов структурной парадигмы, объектно-ориентированной парадигмы и функциональной парадигмы. Поэтому ты никак не можешь смешивать эти языки. Если ты их изучаешь, ты должен изучать их как отдельные направления. И тогда ты будешь их знать. Если же ты будешь изучать их одинаково, как какое-то общее среднее, то ты будешь только рассказывать, что ты их знаешь, но знать точно на деле - когда нужно будет делать что-то на них реальное - ты их не будешь, и это будет видно. Программист на C++ будет видеть, что ты пишешь код на C++, но ничего в нём не понимаешь.



Офлайн

#8 Март 18, 2020 19:11:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

Modiswyn
Вобщем, главное я понял. Создать указатель невозможно. Это прискорбно.
В питоне они и не нужны. В питоне нет указателей не потому, что разработчики не знают, что такое указатель. Исходники питона на C, если их скачаешь и почитаешь, все на указателях написаны.

Изначальный вопрос просто про то, как стали нужны указатели, повествует о нулевом знании питона. Ты пытаешься подходы C++ (или даже не C++, а C) применить к питону, когда в нём есть свои подходы для тех же действий. Чтобы знать подходы питона, нужно изучать питон по книгам про питон.



Офлайн

#9 Март 18, 2020 20:05:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Можно ли создать в Питоне-3 указатель?

Modiswyn
Вобщем, главное я понял. Создать указатель невозможно. Это прискорбно.
Ок, покажите мне способ создать указатель в Java, JavaScript, Ruby, Haskell, C#, PHP, Kotlin, Scala, или даже системном Rust? Какой из современых языков поддерживает эту парадтигму? Ну и надо сказать, что модель паняти у питона несколько отличается от таковой в С++, зря вы пытаетесь перенести знакомые понятия на совершенно другую основу.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version