Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 May 30

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Slavi
Подскажите как решить задачу с летающими шарами используя Class и ООП. Нужно создать лист отдельный с информацией [ИД, х, у, радиус и тп] или можно как то по-другому? не могу допереть как удалить шар на который кликаю.
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
как пример
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
😍
Использование нормальной функции для достижения поведения геттеров и сеттеров

Чтобы получить свойство getters & setters, если мы определим обычные методы get() и set() это не будет отражать какую-либо специальную реализацию. Например


# Программа Python, показывающая использование
# методов get () и set () в
# нормальная функция

 

class Geek:

   def init(self, age = 0):

        self._age = age

     

   # метод получения

   def get_age(self):

       return self._age

     

   # метод установки

   def set_age(self, x):

       self._age = x

 

raj = Geek()

 
# установка возраста с помощью сеттера

raj.set_age(21)

 
# получение возраста с использованием геттера

print(raj.get_age())

 

print(raj._age)
туда же
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
в питоне есть такая крутая штука как дескрипторы
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
это "типа" переменные
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
у которых можно переопределить методы гет сет и делит
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
используя декоратор @property - таким образом - читая значение из такой "переменной" вызовется метод геттер пользовательский, а при присваивании ей значения - сеттер
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
таким образом можно создавать, например какие-то дополнительные переменные для удобства, которые зависят от данных и автоматически пересчитываются если данные исходные изменяются
источник

😍

😍 in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Надо тестировать чтобы все понять
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
для начала надо ченить почитать про них
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
а потом-да
источник

😍

😍 in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Это точнр
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
я собственно вот эту задачку просто для закрепления сам себе придумал
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
когда сам про дескрипторы узнал
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
лайфхак - читайте периодически какой нить код опенсорсных библиотек хороших
можно даже не вникать что он делает
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
просто читаете до первого декоратора или символа который вы раньше в питоне не видели
или в любом другом языке
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
затем гуглите про этот символ - скорей всего это что-то полезное
и так пополняете копилочку свою потихоньку
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
большую часть времени разработчики читают код, а не пишут
источник