最近有些忙,有好几天没有写公众号原创文章了。今天又有时间了,继续啊。
上一篇讲到模块,python包含了丰富的标准库和强大的第三方库,使得python这门程序设计语言很好用。在强大的库模块的基础上,python还具备了面向对象的功能,这使得python能够很好很容易很快捷的满足各种各样的应用需求。
今天来介绍一下python的面向对象的功能。
类的使用
类 一般由 类变量 和 类方法 组成。
重点1:__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法。
重点2:self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
通过下面例子,我们来看一下类的使用。
#!/usr/bin/python
class person:
count = 0
def __init__(self,name):
self.name=name
person.count += 1
print "Initializing %d" %person.count
def display(self):
print "name is %s" %self.name
lisan = person("lisan")
lisan.display()
wangsan = person('wangsan')
wangsan.display()
执行上面程序,打印结果如下:
Initializing 1
name is lisan
Initializing 2
name is wangsan
类的继承
重点1:基类的构造(__init__()方法)不会被自动调用,它需要在其子类的构造中调用。
重点2:子类中调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数。子类中调用普通函数时并不需要带上self参数。
重点3:先在本类中查找调用的方法,找不到才去基类中找。
通过如下程序,我们看看类的继承。
#!/usr/bin/python
class parent:
number = 100
def __init__(self):
print "parent class initialize"
def setattr(self, number):
parent.number = number
def getattr(self):
print "number :", parent.number
class child(parent):
def __init__(self):
parent.__init__(self)
print "child class initialize"
def display(self):
print "display function"
childc = child()
childc.display()
childc.setattr(100)
childc.getattr()
执行上面程序,打印结果如下:
parent class initialize
child class initialize
display function
number :100
子类可以重写父类的方法
#!/usr/bin/python
class parent:
def display(self):
print "parent display"
class child(parent):
def display(self):
print "child display"
childc = child()
childc.display()
执行上面程序,打印结果如下:
child display
面向对象的基础就先介绍到这。
领取专属 10元无门槛券
私享最新 技术干货