Python: os atributos de classe são equivalentes às variáveis locais quando dentro de um método?

Em python, eu sei que procurar uma variável com escopo local é significativamente mais rápida do que procurar uma variável com escopo global. Assim:

a = 4
def function()
    for x in range(10000):
        <do something with 'a'>

É mais lento que

def function()
    a = 4
    for x in range(10000):
        <do something with 'a'>

Então, quando olho para uma definição de classe, com um atributo e um método:

class Classy(object):
    def __init__(self, attribute1):
        self.attribute1 = attribute1
        self.attribute2 = 4
    def method(self):
        for x in range(10000):
            <do something with self.attribute1 and self.attribute2>

O uso de self.attribute é mais parecido com minha primeira ou segunda função? E se eu subclasses Classy e tentar acessar o attribute2 de um método na minha subclasse?

questionAnswers(1)

yourAnswerToTheQuestion