由点python连接的变量

时间:2014-02-02 03:19:48

标签: python variables properties

我是Python的新手,非常喜欢它。 然而,在浏览一些代码时,我无法理解为什么有些变量是通过点连接的。

以下是从同一文件中取出的一些示例。

class Room(object):

    def __init__(self, name, description):
        self.name = name
        self.description = description
        self.paths = {}

    def go(self, direction):
        return self.paths.get(direction, None)

    def add_paths(self, paths):
        self.paths.update(paths)

def test_room():
    gold = Room("GoldRoom",
                """This room has gold in it you can grab. There's a
                door to the north.""")
    assert_equal(gold.name, "GoldRoom")
    assert_equal(gold.paths, {})

我不理解的是那些带点self.paths.update(paths)self.description等等的东西。

我不知道为什么要使用它,必须连接哪些变量以及必须使用它时。

1 个答案:

答案 0 :(得分:5)

他们是“属性”。请参阅tutorial

简而言之,我假设您熟悉词典:

dct = {'foo': 'bar'}
print dct['foo']

属性对于类非常相似:

class Foo(object):
    bar = None

f = Foo()
f.bar = 'baz'
print f.bar 

(事实上,通常,这个在类实例上的字典查找)。当然,一旦你理解了这一点,你就会意识到这不仅适用于类 - 它也适用于模块和包。简而言之,.是从某事获取属性的运算符(或根据上下文设置它)。