Monthly Archives: 六月 2010

关于puppet的import

import “autofs” import “autofs/init.pp” import “autofs/util/stuff.pp” 第一句与第二句会在模块路径中寻找autofs/manifests/init.pp并载入。 第三句只载入autofs/util/stuff.pp文件。 puppet 0.23.1之后的版本,位于modulepath下(默认是/etc/puppet/modules)的模块会被自动载入,所以不需要手动载入此目录下的各个模块了。 当你引用autofs模块中的craziness类时,puppet会自动在autofs模块下寻找craziness.pp文件中的这个类。使用这个技巧就可以不在模块的init.pp中写入额外的import了。

Posted in puppet | Tagged , , | Leave a comment

python全局变量与命名空间

[python] KEY_WORD = "A" def temp(): print KEY_WORD KEY_WORD = "B" [/python] 这段代码运行会提示变量KEY_WORD在定义前使用。原因是因为一旦在函数中修改全局变量,则python会将全局变量认成局部变量,在函数的命名空间内寻找其定义。如果要修改全局变量,要在函数内使用global关键字进行声明。如下: [python] KEY_WORD = "A" def temp(): global KEY_WORD print KEY_WORD KEY_WORD = "B" [/python] 当然,我个人更倾向将全局变量只作为常量。

Posted in Code, Python | Tagged , , | Leave a comment