1.类
class Student(object): def __init__(self, name, score): self.name = name self.score = score
1)__init__
构造方法,__init__
方法的第一个参数永远是self
,表示创建的实例本身,调用时,不用传递该参数。
2)__del__ 析构函数,释放对象时使用
3)__call__函数调用
2.一个简单的例子:
class Studet(object): def __init__(self,name,score): self.name=name self.score=score def print_score(std): print ‘%s: %s‘ % (std.name, std.score) def get_grade(self): if self.score >= 90: return ‘A‘ elif self.score >= 80: return ‘B‘ elif self.score >=70: return ‘C‘ else : return ‘D‘ ares=Studet(‘ares‘,90) ares.print_score() print ‘The score grade is :‘,ares.get_grade()
3.变量:
1)__ares表示ares为 私有变量 (private),只有内部可以访问,外部不能访问
2)以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的
3)以一个下划线开头的实例变量名,比如_name
,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。
4.处理函数:
1)type()
函数:判断对象类型
2)isinstance()
函数:判断class的类型
3)dir()
函数:获得一个对象的所有属性和方法
5.继承和多态:
1)继承模板
class Animal(object):
def fun():
pass
class Dog(Animal):
pass
class Cat(Animal):
pass
Animal为Dog和Cat的父类。
2)优点:
a.继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写;
b.多态
6.多重继承:
类在继承关系时,通常,主线都是单一继承下来的,如果需要“混入”额外的功能,通过多重继承就可以实现。
class Animal(object):
def fun():
pass
class Runnable(object):
def run(self):
print(‘Running...‘)
多重继承:
class Dog(
Animal
, Runnable):
pass