码迷,mamicode.com
首页 > 其他好文 > 详细

学习Python中类及C++类的对比

时间:2016-03-28 22:04:14      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:

Python是一种面向对象、解释性语言,所以在Python开发(http://www.maiziedu.com/course/python-px/里包含有类,因为面向对象语言都有类。今天就简单分享一下Python中类,重点是与C++中的类进行对比。

C++中的父类,Python中叫超类(superclass)

创建类

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

C++this关键字,Python中叫self 
似乎self关键字更加形象。

将特性绑定到一个普通函数

>>>class Class:

     def method(self):

       print ’I have a self!’

 

>>>def function():

     print "I don’t..."

 

>>>instance = Class()

>>>instance.method()

I have a self!

 

>>>instance.method = function

>>>instance.method()

I don’t...

私有 
Python中没有private关键字,不论变方法还是特性,在名字前面加上双下划线即可:

class Secretive:

  def __inaccessible(self):

    print ’Bet you can’t see me...’

指定超类 
即我们C++中的父类、继承。这里不是使用的冒号,而是把超类写在子类后面的括号中:

class Filter:

  def init(self):

    self.blocked = []

class SPAMFilter(Filter):

  def init(self):

    self.blocked = [’SPAM’]

检查继承 
据我所知,在C++中没有直接方法判断两个类是否存在父子关系。 
Python中有内建方法,issubclass函数:

>>>issubclass(SPAMFilter, Filter)true

 

>>>issubclass(Filter, SPAMFilter)false

唯一需要注意的是,第一个参数是子类,第二个参数是超类。

检查一个对象是否是一个类的实例 
isinstance方法,第一个参数是实例,第二个参数是类名

多个超类 
也就是我们C++中所说的多重继承,即才括号里写几个类,中间用逗号隔开。

 

学习Python中类及C++类的对比

标签:

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
jiangjie190
加入时间:2016-02-19
  关注此人  发短消息
文章分类
jiangjie190”关注的人------(0
jiangjie190”的粉丝们------(0
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!