python(类的封装调用/继承/多态),,一、类的定义类:用来


一、类的定义类:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例对象:类实例化出来的叫做对象对象和类的关系:类和对象的关系就像模具和铸件的关系,类的实例化的结果就是对象,而对对象的抽象就是类。类和实例面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如 Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。仍以 Student 类为例,在 Python 中,定义类是通过 class 关键字:
class Student(object):    pass

class 后面紧接着是类名,即 Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再讲,通常,如果没有合适的继承类,就使用 object类,这是所有类最终都会继承的类。

1.类定义:class定义类class 后面加 类名称 加 () 加 :

2.类名称定义规范:

不要以纯数字命名不要以python中保留字符(关键字)来命名不要以文件名命名不能出现特殊字符要简短且见名知义当类名称中有多个单词时,应采用驼峰式(每个单词首字母大写) --> XinFangShuo()

定义好了 Student 类,就可以根据 Student 类创建出 Student 的实例,创建实例是通过类名+()实现的:

bart = Student()

可以看到,变量 bart 指向的就是一个 Student 的实例,而 Student 本身则是一个类。

由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把 name,score 等属性绑上去:
class Student(object):    def __init__(self, name, score):        self.name = name         self.score = score        

注意:特殊方法“__init__”前后分别有两个下划线!!!

注意到__init__方法的第一个参数永远是 self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到 self,因为 self 就指向创建的实例本身。有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但 self 不需要传,Python 解释器自己会把实例变量传进去:
 bart = Student(‘Bart Simpson‘, 59)

和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量 self,并且调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认

参数、可变参数、关键字参数和命名关键字参数。
class Four():           #类的定义    def sub(self,x,y):        return x + y"""class Dog():    def __init__(self,name,age):        self.name = name        self.age = age    def sit(self):        print (self.name.title() + ‘ ‘ + "is now sitting")    def roll_over(self):        print (self.name.title() + ‘ ‘ + "is now roll over")my_dog = Dog(‘willie‘,6)    #参数实例化# your_dog = Dog(‘lucy‘,3)my_dog.sit()my_dog.roll_over()""""""class Four_operations():    def __init__(self,a,b):        self.a = int(a)        self.b = int(b)    def add(self):        return self.a + self.b    def reduce(self):        return self.a - self.b    def ride(self):        return self.a * self.b    def Except(self):        return self.a / self.boperation = Four_operations(‘12‘,‘4‘)print operation.add()print operation.reduce()print operation.ride()print operation.Except()"""

二、类的调用调用类下的方法,必需通过类的的实例/类名()进行调用当类中初始化方法__init__中存在参数时,则在实例化时,需要往实例括号中传入参数当类中无初始化方法或者__init__中不存在参数时,则在实例化时,不需要往实例括号中传入参数,而在调用方法时再进行传参
class Four():     def sub(self,x,y):        return x + yprint Four().sub(2,3)class Four_operations():    def __init__(self,a,b):        self.a = int(a)        self.b = int(b)    def add(self):        return self.a + self.b    def reduce(self):        return self.a - self.b    def ride(self):        return self.a * self.b    def Except(self):        return self.a / self.boperation = Four_operations(‘12‘,‘4‘)        #实例化print operation.add()print operation.reduce()print operation.ride()print operation.Except()

三、继承1.单继承和多继承一个对象使用另一个对象的属性和方法,被继承的类也称父类多重继承就是一个子类继承多个父类
class Four():    def sub(self,x,y):        return x + yclass Five(Four):       #Five类继承了Four类 --> Five 类拥有了 Four 类下的所有函数方法    def jian(self,a,b):        return a - bprint Five().sub(2,5)
class Father():    def __init__(self,name,sport,sex):        self.name = name        self.sport = sport        self.sex = sex    def Surname(self):        print self.name + "姓张"    def hobby(self):        print self.name + "like" + " " + self.sportclass Son(Father):    def study(self):        print self.name + " " + "study very good"    def Sex(self):        print self.name + " " + "is" + " " + self.sexso = Son(‘张四‘,"play basketball","boy")so.Surname()so.hobby()so.study()so.Sex()
class car():    "多继承"    def __init__(self,brand,type,year,mileage):        self.brand = brand        self.type = type        self.year = year        self.mileage = mileage    def make(self):        print self.brand + self.type + "是" + str(self.year) + "生产的!"    def update_mileage(self,mile):        if mile < self.mileage:            print "请勿修改里程数!"class aircraft():    def __init__(self,name,destination):        self.name = name        self.destination = destination    def bound(self):        print self.name + "开往" + self.destinationclass boat(car,aircraft):    def __init__(self,brand,type,year,mileage,name,destination):        self.brand = brand        self.type = type        self.year = year        self.mileage = mileage        self.name = name        self.destination = destinationmy_boat = boat("泰坦","尼克号",2010,500,"泰坦尼克号","宁波")my_boat.make()my_boat.bound()

四、多态(重写父类方法)
class Four():    def sub(self,x,y):        return x + yclass Five(Four):       #Five类继承了Four类 --> Five 类拥有了 Four 类下的所有函数方法    def jian(self,a,b):        return a - b    def sub(self,x,y):        return x * yprint Five().sub(3,6)

python(类的封装调用/继承/多态)

评论关闭