簡體   English   中英

Python。 function 中的名稱未定義錯誤

[英]Python. Name not defined error inside function

我正在嘗試從 Eric Matthews 的“Python 速成課程”中做一些練習。 我很確定我准確地遵循了書中的代碼,但是當我嘗試運行程序時,我仍然收到“名稱未定義錯誤”:

import sys
import pygame
from settings import Settings
from ship import Ship

class AlienInvasion:
    """Class for managing game resources"""
    def __init__(self):
        """initializing the game and creating resources"""
        pygame.init()
        self.settings = Settings()
        self.scr = pygame.display.set_mode((1200, 800))
        pygame.display.set_caption("Alien Invasion")

        self.ship = Ship(scr)

        .....

if __name__ == '__main__':
    # Creating the game object and run the game
    ai = AlienInvasion()
    ai.run_game()

我得到的錯誤是:

Traceback (most recent call last):
  File "alien_invasion.py", line 43, in <module>
    ai = AlienInvasion()
  File "alien_invasion.py", line 17, in __init__
    self.ship = Ship(scr)
NameError: name 'scr' is not defined

如果我理解正確,程序正在嘗試創建位於單獨模塊中的 class “Ship”的 object,但由於無法讀取變量“scr”而失敗,即使它在上面定義了兩行,在同樣的方法。

scr不是局部變量,而是實例變量(正如您使用self.scr創建的那樣),因此您始終必須將其稱為self.scr

您應該使用self.scr而不是scr ,因為該變量在 class 中定義為實例變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM