|
2 / 2 / 1
Регистрация: 01.06.2016
Сообщений: 80
|
||||||
Как получить доступ к переменной, с тем же названием что и модуль?19.08.2016, 18:45. Показов 1579. Ответов 15
Метки нет (Все метки)
Подскажите, как получить доступ из статического метода, (def i(st)) к переменной cards, которая является списком внутри цикла for? При вызове из статич. метода программа переменную cards принимает за модуль (он тоже назван точно так же, cards).
скрин фрагмента кода
0
|
||||||
| 19.08.2016, 18:45 | |
|
Ответы с готовыми решениями:
15
Имя переменной как переменная. Как получить доступ к такой переменной? Забыл, как объявить функцию с тем же названием? Как получить доступ к переменной? |
|
60 / 69 / 16
Регистрация: 18.04.2016
Сообщений: 213
|
|
| 19.08.2016, 19:44 | |
|
l = len(BJ_Deck.cards)
Ну, и в целом это какая-то дурацкая идея использовать поля класса, при этом делать метод статическим.
0
|
|
|
2 / 2 / 1
Регистрация: 01.06.2016
Сообщений: 80
|
|
| 19.08.2016, 19:49 [ТС] | |
|
smlprog, ты наверное первую букву хотел l написать? Если да, то выдаёт ошибку: AttributeError: type object 'BJ_Deck' has no attribute 'cards'
0
|
|
|
60 / 69 / 16
Регистрация: 18.04.2016
Сообщений: 213
|
||||||
| 19.08.2016, 19:52 | ||||||
Сообщение было отмечено Franek как решение
Решение
Тогда метод статическим сделать без грязных хаков не получится.
0
|
||||||
|
2 / 2 / 1
Регистрация: 01.06.2016
Сообщений: 80
|
|
| 19.08.2016, 20:00 [ТС] | |
|
Если так делать, нужно создавать объект. Я не могу, т. к. при создании нового объекта автоматически исполняется метод _init_ обнуляющий переменную l (он находится в базовом классе, от которого образован BJ_Deck). Можно к методу i получить доступ без создания объекта?
0
|
|
|
60 / 69 / 16
Регистрация: 18.04.2016
Сообщений: 213
|
|
| 19.08.2016, 20:06 | |
|
А как ты тогда без объекта вызываешь populate?
0
|
|
|
2 / 2 / 1
Регистрация: 01.06.2016
Сообщений: 80
|
||||||
| 19.08.2016, 20:25 [ТС] | ||||||
|
smlprog, это создание объекта или нет?
0
|
||||||
|
60 / 69 / 16
Регистрация: 18.04.2016
Сообщений: 213
|
|
| 19.08.2016, 20:28 | |
|
Ты мне втираешь какую-то дичь. У populate первый аргумент - self, то есть инстанс класса, то есть объект, который ты как-то уже должен был создать.
Покажи, кто и как вызывает populate.
0
|
|
|
2 / 2 / 1
Регистрация: 01.06.2016
Сообщений: 80
|
||||||
| 19.08.2016, 20:29 [ТС] | ||||||
0
|
||||||
|
60 / 69 / 16
Регистрация: 18.04.2016
Сообщений: 213
|
|
| 19.08.2016, 20:32 | |
|
1
|
|
|
2 / 2 / 1
Регистрация: 01.06.2016
Сообщений: 80
|
||||||
| 19.08.2016, 20:51 [ТС] | ||||||
|
smlprog, всё работает, спасибо.
deck - это не имя объекта, я так понял, а параметр его. Зачем он нужен при создании объекта? Какую роль он играет?
0
|
||||||
|
60 / 69 / 16
Регистрация: 18.04.2016
Сообщений: 213
|
||||||
| 19.08.2016, 20:57 | ||||||
|
deck - это поле инстанса класса BJ_Game. То есть объект - инстанс BJ_deck, который доступен по инстансу класса BJ_Game через поле deck.
То есть:
0
|
||||||
|
2 / 2 / 1
Регистрация: 01.06.2016
Сообщений: 80
|
||||||
| 19.08.2016, 21:16 [ТС] | ||||||
|
Я не знал. С термином "поле" сталкиваюсь впервые.
Добавлено через 6 минут
0
|
||||||
|
60 / 69 / 16
Регистрация: 18.04.2016
Сообщений: 213
|
|
| 19.08.2016, 21:25 | |
|
1
|
|
|
2 / 2 / 1
Регистрация: 01.06.2016
Сообщений: 80
|
|
| 19.08.2016, 21:26 [ТС] | |
|
smlprog, Traceback (most recent call last):
File "C:/Users/Франек/Desktop/My_Python/BlackJack/blackjack.py", line 202, in <module> main() File "C:/Users/Франек/Desktop/My_Python/BlackJack/blackjack.py", line 198, in main game.play() File "C:/Users/Франек/Desktop/My_Python/BlackJack/blackjack.py", line 148, in play self.dealer.flip_first_card() # hide dealer's first card File "C:/Users/Франек/Desktop/My_Python/BlackJack/blackjack.py", line 104, in flip_first_card first_card = self.cards[0] IndexError: list index out of range
0
|
|
|
60 / 69 / 16
Регистрация: 18.04.2016
Сообщений: 213
|
|
| 19.08.2016, 21:29 | |
|
Это означает, что метод flip_first_card() вызывается до того, как в cards добавили хотя бы один элемент.
1
|
|
| 19.08.2016, 21:29 | |
|
Помогаю со студенческими работами здесь
16
Как получить доступ к переменной из kv? Как получить доступ к переменной?
Как получить доступ к переменной класса? Как получить доступ к переменной из блока if Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|