Python抽象之类

类的定义

Python是面向对象程序设计语言。将多个对象提取相同特征,向上抽取,就得到了类。在类中可以定义类的特性和方法。

创建类

>>> __mataclass__ = type                            #确定使用新式类
>>> class Person:
	def setName(self,name):
		self.name = name
	def getName(self):
		return self.name
	def 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值