Chinaunix首页 | 论坛 | 博客
  • 博客访问: 251392
  • 博文数量: 91
  • 博客积分: 4185
  • 博客等级: 上校
  • 技术积分: 855
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-29 16:18
文章分类

全部博文(91)

文章存档

2014年(3)

2013年(1)

2012年(8)

2011年(2)

2010年(5)

2009年(68)

2008年(4)

我的朋友

分类: Python/Ruby

2009-05-21 15:23:10

    python中的类有以下几大特性:
    1、所有的类成员都是公开的,所有的成员函数都是虚的;
    2、没有特定的构造与析构函数;
    3、在成员方法中没有什么简便的方式可以引用对象的成员:方法函数在定义时需要以引用的对象做为第一个参数,调用时则会隐式引用对象;
    4、类即对象;
    5、可以对运算符重载。
       作用域与命名空间:
    def scope_test():
    def do_local():
        print("scope_test: spam:  ", spam) #这里会引用内层作用域变量spam 值为'test spam'
        #spam = "local spam" #由于在外部引内层作用域变量时是只读的,所以该赋值语句会在
                             #do_local中声明一个局部变量spam,该变量与外面的spam无关 !
                             #这两个语句是不能同时使用的。解释器会认为spam未赋值就读取。
                             #Python 的一个特别之处在于其赋值操作总是在最里层的作用域
    def do_nonlocal():
        nonlocal spam    #检索外围作用域并进行重绑定,但不会检索全局作用域
        spam = "nonlocal spam"
    def do_global():
        global spam    #从全局作用域引入变量并进行重绑定
        spam = "global spam"

    spam = "test spam"
    do_local()
    print("After local assignment:", spam)
    do_nonlocal()
    print("After nonlocal assignment:", spam)
    do_global()
    print("After global assignment:", spam)

scope_test()
print("In global scope:", spam)

阅读(644) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~