Python找不到类属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python找不到类属性相关的知识,希望对你有一定的参考价值。
我在制作一个pygame项目时遇到了障碍。 display.py
文件无法在render()
文件中找到player.py
属性。
Traceback (most recent call last):
File "C:UsersethanDesktoppyprojectspygamedisplay.py", line 34, in <module>
player.render(screen)
AttributeError: Player instance has no attribute 'render'
我尝试删除渲染播放器的引用。它工作,加上屏幕呈现正确。当我重新放入参考时,屏幕无法正常渲染,并且一起崩溃
如果你能帮助我,我将不胜感激。
这是代码:
Windows 10 Python-2.7 pygame-1.9.3
display.朋友
import pygame
from player import *
import sys
pygame.init()
black = (0,0,0)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
white = (255,255,255)
screen_x = 800
screen_y = 600
screen = pygame.display.set_mode([screen_x, screen_y])
pygame.display.set_caption("Test")
clock = pygame.time.Clock()
player = Player(0,0)
gameLoop = True
while gameLoop:
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameLoop = False
print(event)
clock.tick(30)
pygame.display.update()
player.render(screen)
screen.fill(white)
pygame.quit()
player.朋友
import pygame
from display import *
import sys
class Player:
def __init__(self, x, y):
self.x = x
self.y = y
self.width = 32
self.height = 32
def render(self, window):
pygame.draw.rect(window, (0,0,255), (self.x, self.y, self.width, self.height))
再次感谢!
答案
我得到一个不同的错误:
player = Player(0,0) NameError: name 'Player' is not defined
发生这种情况是因为您从player.py文件中的display
导入并在player.py中定义Player
之前运行display.py文件。
您可以将display.py中的代码放入main
函数中,并在特殊的if子句中调用它:
if __name__ == '__main__':
main()
这确保了导入显示模块时main
函数不会运行。
或者您可以删除播放器模块中的from display import *
行。如果播放器和显示模块都需要,请将它们放入另一个单独的模块中。
以上是关于Python找不到类属性的主要内容,如果未能解决你的问题,请参考以下文章