python面向对象编程基础

来源:互联网 发布:淘宝日用百货店铺推荐 编辑:程序博客网 时间:2024/05/16 10:30

python面向对象编程基础:
1、类的创建和实例化
2、继承、多态、多重继承
类的继承是一种纵向的关系,def class(BaseClass),class类继承BaseClass,拥有BaseClass的属性和方法
3、类的组合
类的组合是一种横向关系
4、内部属性
由于python语言没有public、private这样的关键字定义属性是公有还是私有的,所以如果使用普通变量命名属性就可以被外部任意调用和修改,这显然是不安全的。python采用了一种name mangling机制,在类的属性命名前加上‘__’则外部就不可访问该属性名,但是内部可以访问和调用

#coding:utf-8'''OOP 面向对象编程类的创建类的实例化继承、多态、多重继承组合类的属性和方法是静态的内部属性,不允许外部访问和修改,在属性名前加'__',这是一个name manling,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问既然内部可以访问,如果我们确实需要修改属性,则可以创建内部的修改属性方法'''class User:    '''    定义一个用户类    '''    def __init__(self,name,age):        self.__name=name        self.age=age    def setName(self,name):        self.__name=name    def getName(self):        print('我的名字是:%s' %self.__name)    def getAge(self):        print('我的年龄是:%d岁' %self.age)user1=User('四明',30)user1.getName()user1.__name='这样子是改不了的' #改不了name属性了user1.getName()user1.setName('这样子就可以改了')user1.getName()user2=User('python',2)user2.getName()user2.getAge()user2.age=20user2.getAge()# 继承和多态# 多态就是说同一个方法对于不同的类可以有不同的实现class Animal:    def __init__(self,name,legs):        self.__legs=legs        self.__name=name    def getName(self):        return self.__name    def printInfo(self):        print('我是%s,我有%d条腿' %(self.__name,self.__legs))    def shout(self):        pass  #Animal定义了一个模版class Cat(Animal):    def shout(self):        print("喵喵喵...") #重写父类的shout方法class Dog(Animal):    def shout(self):        print("汪汪汪...") #重写父类的shout方法def run(Animal):    print('%s is running...'%Animal.getName())# 创建Cat和Dog的实例cat1=Cat('喵星人',4)dog1=Dog('汪星人',5)cat1.printInfo()cat1.shout()dog1.printInfo()dog1.shout()run(cat1)run(dog1) #这就是一种多态,传入不同的对象会有不同的表现
1 0
原创粉丝点击