简单的介绍 Python 中的面向对象编程
Python类定义中有一个命名规范, 就是类里面 "单下划线" 开始的成员变量叫做保护变量, 意思是只有类对象和自类对象自己能访问到这些变量; 而 "双下划线" 开始的是私有成员, 意思是只有类对象自己能访问, 连子类对象也不能访问到这个数据。下面是使用私有成员的一个例子。Python代码
class Fool:
def __init__(self):
self.__a = None # None 就是什么都没有
def set_a(self, a):
self.__a = a
def get_a(self):
print self.__a
fool_obj = Fool()
print foo.__a # 哼哼, 等着报错吧,
# 只有 foo "自己" 才可以 "看见" __a
fool_obj.set_a("Im A")
print fool_obj.get_a()
class Fool:
def __init__(self):
self.__a = None # None 就是什么都没有
def set_a(self, a):
self.__a = a
def get_a(self):
print self.__a
fool_obj = Fool()
print foo.__a # 哼哼, 等着报错吧,
# 只有 foo "自己" 才可以 "看见" __a
fool_obj.set_a("Im A")
print fool_obj.get_a()
把对象里面的成员保护起来, 曾经流行过一段时间, 特别是 Java 里面, 程序员似乎养成了习惯, 要改点东西一定要 get/set 一番, 也不觉得累。后来人们才发现好端端的 "等号" 不用非要搞一大堆劳什子 get 和 set 函数, 还在那里自称 "隐藏实现", 完全是自我易做图。聪明起来之后, 才找到真正 "隐藏实现" 的方法, 就是重定义等号运算符, 把许多本来就是应该用 get 和 set 的地方 (比如 get_time, 当前时间每次都要生成, 似乎只能用方法得到) 用直接操作成员变量的方法来做。
类继承:
Class Bar(Foo):
....
多重继承:
Class Bar(Foo1, Foo2, Foo3):
....
所谓继承就是让新的类, 子类得到父类 (就是那个 Foo) 的成员和功能。但是最好不要忘记子类也 需要一个 __init__ 函数, 把 a、b、c、d 这些成员都创建出来, 或者直接调用父类的 __init__ 函数来完成这件事情, 并且我们通常是这样做的。
补充:Web开发 , Python ,