2017-07-17 75 views
4

我不是程序员,编程也很新。试图学习和理解python使用类,函数和变量的方式。从类到词典的变量键和值Python中的函数

我在下面创建了这段代码。

class Test: 
    number = 1 
    field = ['Address', 'Name', 'Age'] 

    def book(self): 
     myDict = self.book 
     myDict = {number : field} 
     # Need my Output to be myDict = {1 : ['Address', 'Name', 'Age']} 
     return myDict 

它不显示任何错误,而编译但抛出,而调用该对象的实例

>>> te = Test() 
>>> te.book() 

Traceback (most recent call last): 
File "<pyshell#9>", line 1, in <module> 
    te.book() 
    myDict = {number : field} 
NameError: name 'number' is not defined 

我在我的脑海的是,在函数外声明的变量global并且如果该函数里面没有这个变量,会被调用函数,有人请澄清我在哪里弄错了解这个概念。

回答

2

number在方法外部声明,而不是全局声明。它是您创建的课程的一个属性,因此您应该将其引用为self.numberTest.number

+0

感谢明白我哪里错了 – Watarap

2

不是全局变量,类变量,你可以访问他们的类名在函数内部:

myDict = {Test. number : Test.field}