python 面向对象学习笔记(一)类
时间:2009-05-21 来源:yangguosdxl
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)
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)
相关阅读 更多 +