我是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
等等的东西。
我不知道为什么要使用它,必须连接哪些变量以及必须使用它时。
答案 0 :(得分:5)
他们是“属性”。请参阅tutorial。
简而言之,我假设您熟悉词典:
dct = {'foo': 'bar'}
print dct['foo']
属性对于类非常相似:
class Foo(object):
bar = None
f = Foo()
f.bar = 'baz'
print f.bar
(事实上,通常,这个是在类实例上的字典查找)。当然,一旦你理解了这一点,你就会意识到这不仅适用于类 - 它也适用于模块和包。简而言之,.
是从某事获取属性的运算符(或根据上下文设置它)。