@Anther
Начинающий

Как работают точки в python?

Правильно ли я понимаю, что когда я вижу такую конструкцию:
pygame.display.set_mode((800, 600))

Она подразумевает такую реализацию:
class Person():
    b = lambda x: x**2

class Student():
    a = Person

print(Student.a.b(12)) # 144


Не понимаю что в данном случае значит pygame, display и set_mode((800, 600)) и как это работает.
  • Вопрос задан
  • 4105 просмотров
Решения вопроса 1
npanuhin
@npanuhin
Разберём pygame.display.set_mode((800, 600)):
  • pygame - имя модуля. Модули могут содержать классы, фунции, переменные. Можно прочитать, например, здесь
  • display (pygame.display) - класс модуля pygame. Обычный класс в каком-то файле модуля. Как из вашего примера про Person и Student
  • set_mode (pygame.display.set_mode) - функция в этом классе

Например, создадим файл test.py:
class Person():   # аналог display
    b = lambda x: x**2
    def count(a):   # аналог set_mode
        return 3 * a

Тогда верна следующая конструкция (для любого файла в той же директории):
import test
print( test.Person.count(2) )  # выведет 6


Так что это работает не так, как вы предложили.
set_mode это функция, а не класс - функция в классе display.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@500rur
Запись pygame.display.set_mode((800, 600))
означает вызов функции set_mode, в качестве аргумента передается кортеж (800, 600). Точки как бы задают путь этой функции (объект, которому она принадлежит).

Аналогия в винде:
представьте, что вы запускаете программу С:\pygame\display\set_mode.exe c параметром (800, 600)
В питоне у вас точки вместо обратных слешей.

Головоломка:
что означает запись ' '.join(('one', 'two', 'three'))
?
Ответ написан
Комментировать
cyshka0
@cyshka0
Учу программирование, люблю читать и чай
При импорте модуля Python выполняет весь код в нём. При импорте пакета Python выполняет код в файле пакета __init__.py, если такой имеется. Все объекты, определённые в модуле или __init__.py, становятся доступны импортирующему.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы