OOP属性定义

时间:2015-11-03 14:29:13

标签: python python-2.7 oop

我想在方法中定义一个属性:

class variables:
    def definition(self):
        self.word = "apple"

然后我想使用已定义的属性:

test = variables()
print test.definition.word

我没有写'apple'而是收到错误:

Traceback (most recent call last):
  File "bezejmenný.py", line 6, in <module>
    print test.definition.word
AttributeError: 'function' object has no attribute 'word'

2 个答案:

答案 0 :(得分:4)

  1. definition是一种方法,因此您需要执行它
  2. 因为您要为self分配变量,所以您可以通过您的实例访问它,如下所示

    test = variables()
    test.definition()
    print test.word
    
  3. 一些想法:

    • 最佳做法是使用大写字母开始上课名称
    • 如果您只是希望上课有字段,则不需要definition方法
    • 使用object扩展您的课程,因为 python中的所有内容是对象(仅限python 2.x)

      class Variables(object):
          def __init__(self):
              self.word = 'I am a word'
      
      variables = Variables()
      print variables.word
      

答案 1 :(得分:2)

您可以像这样访问实例属性:

test = variable()
test.definition()
print test.word