python学习总结之类对象
来源:互联网 发布:sql注入进阶 编辑:程序博客网 时间:2024/06/07 01:02
面向对象(OO)是一种编程的思想而不是一种语言,python是用C语言来现实的面向对象的语言,面向对象的目的就是代码的重用,减少重复性的开发,面向对象的代码重用机制包括封装、继承、多态。面向对象的核心则是抽象、分离接口和实现。
这里让我们来一起探讨一下python的面向对象的具体格式和方法:
首先是self参数变量,它是区别方法和一般函数的一个标识,类方法必须含有这个self的变量:
#修改了sayhi()方法,将self去掉后:就会出现错误,说是没有参数。 def sayHi(): print 'hello,how are you?', self.name[root@fsailing1 class]# py method.pyTraceback (most recent call last): File "method.py", line 9, in ? p.sayHi()TypeError: sayHi() takes no arguments (1 given)init和del方法,这两个方法是在类对象被实例化话的时候就已经被初始化了,或者类对象被回收之后自动出发del方法
类的参数变量和对象的参数变量:
class Person: population=0 def __init__(self,name): self.name=name Person.population+=1 print '(Initializing %s)' %self.name def __def__(self): print '%s says bye.' %self.name Person.population-=1 if Person.population==0: print 'I am the last one.' else: print 'there are still %d people left' %Person.population def sayhi(self): print 'hi,my name is %s' %self.name def howMany(self): if Person.population==1: print 'I am the only person here.' else: print 'We have %d persons here.' %Person.population继承,注意书写的格式,这里的的子类覆盖了父类的init方法和tell方法
class SchoolMember: '''Represents any school member.''' def __init__(self,name,age): self.name=name self.age=age print '(Initialized schoolMember: %s)' %self.name def tell(self): '''Tell my details.''' print 'Name:"%s" Age:"%s"' %(self.name,self.age)class Teacher(SchoolMember): '''Represents a teacher.''' def __init__(self,name,age,salary): SchoolMember.__init__(self,name,age) self.salary=salary print '(Initialized Teacher: %s)' %self.name def tell(self): SchoolMember.tell(self) print 'Salary: "%d"' %self.salaryclass Student(SchoolMember): '''Represents a student.''' def __init__(self,name,age,marks): SchoolMember.__init__(self,name,age) self.marks=marks print '(Initialized Student :%s)' %self.name def tell(self): SchoolMember.tell(self) print 'Marks is :"%d"' %self.marks
- python学习总结之类对象
- Python学习笔记之类和对象
- Java学习总结之类与对象
- [OOAD]面向对象分析与设计之类图学习总结
- Python 学习之类(Class)
- Python学习之类属性
- Python学习之类
- ruby学习之类,对象,模块
- java学习之类和对象
- scala学习之类和对象
- oc学习之类与对象
- JAVA学习之类和对象
- Java学习之类与对象
- Python之类(Class)的学习
- 16.Python入门之类与对象
- Python学习教程(七)——抽象之类和对象
- Java_[转载总结]之类与对象
- C++学习笔记之类于对象
- windows——为按钮添加背景图片
- Java加密技术(六)
- wait和waitpid
- Java加密技术(七)
- 学习STM32(1)-IO-GPIO
- python学习总结之类对象
- 删除修改Eclipse里的SVN账户
- 丰富linux驱动内容笔记——platform设备驱动
- java中volatile关键字的含义
- Python 通过代理访问网络
- linux命令--Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
- Java加密技术(八)
- Jelly Bean发布:更为流畅、全新体验语音搜索、推送功能更强大
- Robotium测试NotePad(二) //测试添加文本