python 也有面向对象的思想,则一切皆对象
python 中定义一个类:
class student:
count = 0
books = []
def __init__(self,name,grade)
self.name=name
self.grade=grade
def ex(self):
if self.grade=='1':
print 'aaa'
else:
print 'ccc'
定义的类中,self 就相当于java中的this,相当于于实例本身
在python类中 通过”_”和”__”实现的访问控制
数据属性
在上面的Student类中,”count””books””name”和”age”都被称为类的数据属性,但是它们又分为类数据属性和实例数据属性
“_”:以单下划线开头的表示的是protected类型的变量,即只能允许其本身与子类进行访问;同时表示弱内部变量标示,如,当使用”from moduleNmae import *”时,不会将以一个下划线开头的对象引入。
“__”:双下划线的表示的是私有类型的变量。只能是允许这个类本身进行访问了,连子类也不可以,这类属性在运行时属性名会加上单下划线和类名。
继承:
在python中既支持单继承又支持多继承
python中类 __new__()是一个静态方法,类先调用完__new__()方法生成一个cls实例,然后才调用__init__()
python中单例实现:
class Singleton(object):
_instance=None
def __new__(cls,*args,**kwargs):
if not cls._instance:
cls._instance= super(Singleton,cls).__new__(cls)
return cls._instance
class Single(object):
_instance={}
def __new__(cls):
if not cls._instance.has_key[cls]:
cls._instance[cls]=object.__new__(cls)
return cls._instance[cls]