Найти - Пользователи
Полная версия: Можно ли создать в Питоне-3 указатель?
Начало » Python для новичков » Можно ли создать в Питоне-3 указатель?
1
Modiswyn
Такой нормальный, конкретный указатель, чтобы объект удалён, а он продолжает указывать на несуществующее место?

Для чего это надо.
 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 содержит указатели на пустое место, да и пенис бы с ним, он мне больше не нужен.

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

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

Можете считать что все объекты в питоне это указатели, это хорошее приближение к истине.
py.user.next
Modiswyn
В плюсах я бы создал lst_1 с указателями
По цппшному в питоне лучше не думать. После C++ Питон надо учить с нуля, как будто ничего не зная, потому что в нём всё по-другому делается. Так что прочитай книжку Dive Into Python 3.
AD0DE412
doza_and
все объекты в питоне это указатели
при беглом ознакомлении с cpp так и показалось .. в чем отличия
py.user.next
По цппшному в питоне лучше не думать.
а в обратную сторону? по питоник в cpp
FishHook
Modiswyn
Придётся вам и плюсы тоже переучивать - указатели в с++ всё
https://www.fluentcpp.com/2018/04/01/cpp-will-no-longer-have-pointers/
ваша парадигма устарела и никто в современных реалиях так уже не кодит
Modiswyn
FishHook
ModiswynПридётся вам и плюсы тоже переучивать - указатели в с++ всёhttps://www.fluentcpp.com/2018/04/01/cpp-will-no-longer-have-pointers/ваша парадигма устарела и никто в современных реалиях так уже не кодит
Вообще-то там написано, что удаление указателей - шутка.

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

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

Изначальный вопрос просто про то, как стали нужны указатели, повествует о нулевом знании питона. Ты пытаешься подходы C++ (или даже не C++, а C) применить к питону, когда в нём есть свои подходы для тех же действий. Чтобы знать подходы питона, нужно изучать питон по книгам про питон.
FishHook
Modiswyn
Вобщем, главное я понял. Создать указатель невозможно. Это прискорбно.
Ок, покажите мне способ создать указатель в Java, JavaScript, Ruby, Haskell, C#, PHP, Kotlin, Scala, или даже системном Rust? Какой из современых языков поддерживает эту парадтигму? Ну и надо сказать, что модель паняти у питона несколько отличается от таковой в С++, зря вы пытаетесь перенести знакомые понятия на совершенно другую основу.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB