Python基础
hanlray@gmail.comRevision: 0.03 Date: 2006/05/04
- 对于data attribute,local variable,当它们第一次被赋值时才存在
class MSVCCompiler : def __init__(self): self.initialized = False def initialize(self): self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GX', '/DNDEBUG'] self.initialized = True
如果这样调用:compiler = MSVCCompiler() compiler.compile_options.extend()
你会得到AttributeError: MSVCCompiler instance has no attribute 'compile_options' 因为此时compile_options还未被赋值,故还不存在,而当调用了initialize后就不会有这样的问题了。 - import用法
Sound/ __init__.py Formats/ __init__.py wavread.py wavwrite.py aiffread.py aiffwrite.py auread.py auwrite.py ... Effects/ __init__.py echo.py surround.py reverse.py ... Filters/ __init__.py equalizer.py vocoder.py karaoke.py ...
- import Sound.Effects.echo
- from Sound.Effects import echo
- from Sound.Effects.echo import echofilter
- import Sound.Effects
Sound/Effects/__init__.py
),则可通过Sound.Effects.foo来引用,但是不能引用该package的下层元素(包括module和subpackage),比如Sound.Effects.echo,python不支持从package到下层的引用 - from Sound import Effects
- 不能直接引入module、pakcage中定义的名字
Sound/__init__.py
中定义了foo函数,则import Sound.foo是不合法的;同理import Sound.Effects.echo.echofilter也是不对的;应该通过from来引入这些定义
- import Sound.Effects.echo
- Python's Search Path
>>> sys.path ['', '/usr/local/lib/python2.3', '/usr/local/lib/python2.3/plat-linux2', '/usr/local/lib/python2.3/lib-tk', '/usr/local/lib/python2.3/lib-dynload', '/usr/local/lib/python2.3/site-packages'] >>>
然后python还会在这些目录下搜索.pth文件,把这些文件里指定的目录也加进sys.path。