Python Forum

Full Version: AttributeError: 'NoneType' object has no attribute 'n' in list of class objects
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
So, I was trying to develop a game in PyGame and came across a problem. I tried it it on a much simpler code and it still returns an error, so I think it's not about my big code. Here's what goes wrong (the short version)
from random import randint as rand

def A():
    def __init__(self):
        self.n = rand(1,10)

b = []
for i in range(10):
    b.append(A())
for i in range(10):
    print(str(b[i].n))
So, basically, I'm filling "b" with a list of 10 "a" objects. Each object gets assigned a random value on its __init__. Then I iterate through all the objects printing their "n" value. Well, instead of printing some random numbers, it gives me an error:
Error:
Traceback (most recent call last): File "C:/Users/sergio/Desktop/python/test/d.py", line 11, in <module> print(str(b[i].n)) AttributeError: 'NoneType' object has no attribute 'n'
Any help would be appreciated.
If you want an object you have to create a class, not a function:

class A():
    def __init__(self):
        self.n = rand(1,10)
Oh that's true. And now that code works but my long code still doesn't. Here it is https://pastebin.com/Z4qjGxCU. The problem with this one is that, when I call check_num() on the tiles, it works. But when I call check_mouse(), load_image() [which I've commented so you don't have to download the assets] or print_tile() they return an error such as this:
Error:
Traceback (most recent call last): File "C:\Users\sergio\Desktop\Minesweeper\minesweeper.py", line 96, in <module> grid[i][j].check_mouse() AttributeError: 'Tile' object has no attribute 'check_mouse'
I've checked the code but I can't find anything that's wrong. Any ideas?
You have an "extra" tab at the 56 line.
Align the "def check_mouse(self):" like "def check_num(self):"
And the other functions too.
Oh god, that was so simple. I always overlook the most noticeable errors somehow. Thanks