2013-03-07 3 views
0

Облицовочные ошибки как:Доступ к статическим переменным метода из другого статического метода в том же классе

AttributeError: 'function' object has no attribute 'd'. 

, как получить доступ к словарю?

код:

class A: 
    @staticmethod 
    def test(): 
     d = {} 
     d['a'] = 'b' 
     print d 
    @staticmethod 
    def test1(): 
     d1 = {} 
     d1['a'] = 'c' 
     if (A.test.d['a'] == A.test1.d1['a']): 
      print "yes" 

     else: 
      print "Oh No!!" 
A.test() 
A.test1() 

ответ

1

Заканчивать this по вопросу статических переменных в Python.

Вы должны иметь возможность сортировать его с использованием A.d и A.d1 всякий раз, когда вы хотите использовать статические переменные. Обратите внимание, что, поскольку у вас есть они, они являются локальными для тестирования и тестирования1, соответственно. Если вы хотите, чтобы они были статическими, вы должны объявить их внутри области класса, но не в пределах какого-либо определения функции.

+0

Спасибо, как и вы сказали, что я объявил его локальной переменной, но после объявления в качестве внешней переменной внешней функции, но внутри класса и доступ к глобальной переменной внутри любой функции с помощью Ad ['a'] == d1 [' a '] вместо вышеупомянутого кода и его рабочего штрафа. – thor

+0

Упорядочить ответ как принято? Благодаря! – snowingheart

+1

@thor Если этот ответ решил вашу проблему, вы должны принять его, нажав галочку рядом с ним. Это позволит другим людям, которые могут столкнуться с подобной проблемой, знать, что ответ, вероятно, также поможет им. Он также вознаградит человека, который отправил его за свои усилия, чтобы помочь вам. – itsjeyd

Смежные вопросы