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
- python面向对象编程基础
- Python面向对象编程基础
- Python面向对象编程基础
- python面向对象编程基础
- python 面向对象编程-基础
- Python面向对象编程基础
- python基础-----面向对象编程
- Python 面向对象编程(一)基础
- python基础学习笔记<面向对象编程>
- Python面向对象编程基础学习笔记
- python之面向对象编程基础
- Python基础之五面向对象编程
- python基础八_面向对象编程
- Python 之 基础面向对象编程
- Python基础学习--第十二篇(面向对象编程基础)
- Python基础进阶篇——面向对象编程基础
- Python编程基础之十二面向对象编程
- Python面向对象基础
- File operations in SAP Application server (AL11) using UNIX Command
- MachineLearning Practice: linear regression
- 【概率与期望】[UVa11021]Tribles
- 曼哈顿最小生成树
- 程序员思维释放(二):保持沉淀自我的心
- python面向对象编程基础
- NSURLSession(二)POST请求
- 【概率与期望】[UVA11021]Tribles
- Linux环境下"Font font = new Font("黑体", Font.BOLD, 18)"[BufferedImage~Graphics~drawString]中文乱码
- LeetCode Algorithms #169 <Majority Element>
- java 中排列组合
- linux下使用source insight
- android 导入外部字体
- web.xml 加入中心拦截器