TGViewer
Channel Public Channel
Python: задачки и вопросы

Python: задачки и вопросы

@quiz_python

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Subscribers
6.92K
Photos
1.4K
Videos
1
Links
127

Showing posts older than #4161 · Back to latest

Older Posts 20 shown
Post #4160 982
Речь идет о так называемом ромбовидном наследовании и принципе MRO (Method Resolution Order).

Марк Лутц, «Изучаем Python», том 2, гл. 32:

«Путь поиска при наследовании в ромбовидных схемах выполняется больше в манере сначала в ширину ~ Python сначала ищет в любых суперклассах справа от только что просмотренного и только потом поднимается к общему суперклассу вверху. Другими словами, поиск проходит по уровням, прежде чем двигаться вверх.

...

class A: attr = 1 # Обычный класс

class B(A): pass # В и С ведут к А
class С(A): attr = 2
class D(B, С): pass # Проверяет С перед А

х = D()
print(х.attr) # Ищет в х, D, В, С

Атрибут x.attr обнаруживается в суперклассе А, потому что в классических классах
поиск при наследовании поднимается настолько высоко, насколько может, прежде
чем остановиться и начать движение вправо».
  • 👍 4
  • 👎 1
Post #4159 908
  • 👍 4
  • 👎 1
Post #4158 932
  • 👍 2
  • 👎 1
Post #4154 980
Марк Лутц, «Изучаем Python», том 2, гл. 32:

«Помимо появления возможности создавать подклассы встроенных типов и реализовывать метаклассы — один из самых практических контекстов, где такое объединение “тип/класс” становится наиболее очевидным, касается явной проверки типов. Для классических классов Python 2.Х типом экземпляра класса является обобщенный «экземпляр» (instance), но типы встроенных объектов более специфичны:

class С(object): pass # Обычный класс
I = С() # Экземпляры создаются из классов
print(type(I)) # Выведет <class '__main__.С'>»

В данном примере:
- Создается класс С, наследующий от object
- Создается экземпляр I этого класса
- type(I) возвращает <class '__main__.С'>
Post #4153 876
  • 👍 3
  • 👎 1
Post #4152 865
  • 👍 4
  • 👎 1
Post #4151 913
Из документации Pandas:

DataFrame.set_index(keys, *, ...)
Устанавливает индекс датафрейма, используя существующие столбцы. В данном случае — timestamp.

DataFrame.asfreq(freq, ...):
Преобразует временной ряд в ряд заданной частоты. В данном случае — в ряд ежедневных (D — "Daily") значений.

DataFrame.ffill(*, ...):
Заполняет значения NA / NaN, распространяя последнее действительное наблюдение на следующее действительное. В данном случае — заполняет пропущенные значения в режиме "forward fill" (то есть выставляет значение предыдущего дня на следующий пустующий день).

В данном случае комбинация asfreq() и ffill() позволяет сформировать последовательно возрастающие данные для каждого из семи дней, с forward-заполнением.
  • 👍 1
  • 👎 1
Post #4150 796
  • 👍 2
  • 👎 1
  • 💩 1
Post #4149 822
  • 👍 2
  • 👎 1
Post #4148 860
Из документации Pandas:

-
pandas.to_datetime(arg, ...)
Конвертирует аргумент в тип datetime (в временные метки без часовых поясов).

-
Series.tz_localize(tz, ...)
Присваивает нулевой часовой пояс «наивной» временной метке

-
Series.dt.tz_convert(*args, **kwargs)
Конвертирует временные метки с часовым поясом в указанный часовой пояс "Asia/Jakarta".
  • 👎 5
  • 👍 1
Post #4147 880
  • 👎 7
  • 👍 2
Post #4146 801
  • 👎 5
  • 👍 1
Post #4145 865
Несмотря на PEP8:

«... Избегайте лишних пробелов в следующих ситуациях:
...
... непосредственно перед открывающей скобкой, которая начинает список аргументов вызова функции:

spam(1) # верно
spam (1) # неверно»

Пробел между названием функции и скобкой не уронит программу.
Python Enhancement Proposals (PEPs) PEP 8 – Style Guide for Python Code | peps.python.org This document gives coding conventions for the Python code comprising the standard library in the main Python distribution. Please see the companion informational PEP describing style guidelines for the C code in the C implementation of Python.
  • 👍 3
  • 👎 1
Post #4144 787
  • 😐 9
  • 👍 3
  • 👎 1
Post #4143 830
  • 👍 3
  • 👎 1
Post #4142 870
Документация Python, 3. Data model, 3.3.1. Basic customization:

... Если не определить метод str или repr в классе, то используется реализация по умолчанию, которая возвращает строку с именем класса и адресом объекта в памяти.


Именно это и происходит в вашем примере.
Python documentation 3. Data model Objects, values and types: Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. Even code is represented by objects. Ev...
  • 👍 1
  • 👎 1
Post #4141 713
  • 👍 3
  • 👎 1
Post #4140 818
  • 👍 1
  • 👎 1
Post #4139 964
Марк Лутц, "Изучаем Python", том 2, Глава 31:

«... Допускается вызывать метод без экземпляра при условии, что метод его не ожидает, и метод вызывается только через класс и никогда через экземпляр. То есть Python будет передавать экземпляр методам только для вызовов через экземпляр. При вызове через класс передавать экземпляр вручную понадобится только в случае, если метод его ожидает:

class Selfless:
def __init__(self, data):
self.data = data
def selfless(arg1, arg2): # Простая функция
return arg1 + arg2
def normal(self, arg1, arg2): # При вызове ожидается экземпляр
return
self.data + arg1 + arg2

X = Selfless(2)
X.normal(3, 4) # Экземпляр передается self автоматически: 2+(3+4)

print(Selfless.normal(X, 3, 4)) # Метод ожидает self: передать вручную
print(Selfless.selfless(3, 4)) # Без передачи экземпляра

Последний тест работает из-за того, что такие методы трактуются как простые функции, не нуждающиеся в экземпляре. Несмотря на то что в Python З.Х перестают отлавливаться некоторые потенциальные ошибки (что, если программист забыл передать экземпляр?), появляется возможность использовать методы класса как простые функции до тех пор, пока им не передается аргумент экземпляра self и они не рассчитывают на него.
  • ❤ 1
  • 👍 1
  • 👎 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →