Python抽象之类
来源:互联网 发布:克林战斗力官方数据 编辑:程序博客网 时间:2024/06/06 15:00
类的定义
Python是面向对象程序设计语言。将多个对象提取相同特征,向上抽取,就得到了类。在类中可以定义类的特性和方法。
创建类
>>> __mataclass__ = type #确定使用新式类>>> class Person:def setName(self,name):self.name = namedef getName(self):return self.namedef greet(self):print "Hello ,world! I'm %s." % self.name>>>class语句会在函数定义的地方创建自己的命名空间。其中,self参数是对于对象自身的引用。
>>> p1 = Person()>>> p2 = Person()>>> p1.setName('Tom')>>> p2.setName('Ami')>>> p1.greet()Hello,world! I'm Tom.>>> p2.greet()Hello,world! I'm Ami.
特性、函数和方法
self参数事实上正是方法和函数的区别。方法(刚专业一点可以成为绑定方法)将他们的第一个参数绑定到所属的实例上,因此不需显示提供该参数。
特性可以理解为在类中定义的变量。私有化
Python并没有真正的私有化支持。若要实现隐藏特性或者方法,使该特性和方法不可以在类外部直接调用。可以在定义特性和方法时在名字前加上双下划线。
>>> class Secretive:def __inaccessible(self):print "Bet you can't see me..."def accessible(self):print "The secret message is:"self.__inaccessible()>>> s = Secretive() >>> s.__inaccessible() #__inaccessible从外界是无法访问的,而在类内部是可以的Traceback (most recent call last): File "<pyshell#22>", line 1, in <module> s.__inaccessible()AttributeError: Secretive instance has no attribute '__inaccessible'>>> s.accessible()The secret message is:Bet you can't see me...>>>但是Python并没有真正的私有化支持,在类的内部定义中,所有以双下划线开始的名字都被”翻译“成前面加上单下划线和类名的形式。
>>> s._Secretive__inaccessible()Bet you can't see me...>>>如果不需要使用这种方法但是又想其他对象不要访问内部数据,那么可以使用单下划线。
类的命名空间
面向对象三大特性
封装
封装可以使类只对外提供一些功能接口,而不用提供实现功能的细节。这对程序的安全和使用都是有很大影响的。
多态
多态意味着可以对不同类的对象使用同样的操作。
继承
以通用的类为基础建立专门的类对象。
0 0
- Python抽象之类
- python之类
- Python之类
- Python之类
- Python学习教程(七)——抽象之类和对象
- Python小贴士之类
- Python 学习之类(Class)
- Python学习之类属性
- Python学习之类
- python之类定义
- python之类--socket
- python之类之select
- python之类-django进阶
- python学习总结之类对象
- Python之类(Class)的学习
- python之类方法的重载
- Python浅析之类的写法
- python基础知识之类和文件
- MATLAB 神经网络训练参数解释
- libgdx 源码导入 idea 工具
- 隐藏(删除) Preference 小结
- Android数据转化为Excel表格导入导出
- DM9000网卡驱动简析
- Python抽象之类
- 虚幻4 TaskGraph小记
- hdu1390Binary Numbers
- 归并排序_java实现
- Linux防火墙问题
- 根据前序遍历判断二叉搜索树
- 二叉树前序、中序、后序遍历相互求法
- SVN conf配置文件信息
- 集合