Python是一门面向对象的编程语言。对象包含两个部分:数据(data)和函数(function/method),函数对数据进行操作。
类(class)
类是对象的模板,用来描述具有相同的属性和方法的对象的集合。它包含了对对象操作的全部函数的代码。
创建类
创建类需要class语句,通常来讲,类名的首字母需要大写。下面是一个创建类的示例:
class Calculate:
def __init__(self,num1,num2):
self.num1=num1
self.num2=num2
def div(self):
return self.num1/self.num2
cal=Calculate(255,286)
print(cal.div())
- 绝大多数类都包含一个名为__init__的函数。这个特殊的函数叫做构造器(constructor),构造器会在用类创建对象时被自动调用。构造器一般被用来设定一些类的变量。在上面的示例中,构造器获取了括号内的两个变量——num1和num2,并且用它们创建了两个类变量。
- 对于类里的所有函数,小括号内的第一个参数都必须是self。在每次读取类的变量时,都需要在变量名前加上self。self的功能是区分类中的变量和程序中的其他变量。
- 用 ‘.’ 调用能对对象的函数。
示例:
class Strs:
def __init__(self,string1,string2,iters):
self.string1=string1
self.string2=string2
self.iters=iters
def multiply(self):
return self.string1*self.iters, self.string2*self.iters
def adding(self):
return self.string1+self.string2
str1=Strs('?',"idk",10)
print(str1.multiply(),str1.adding())
类的继承(Inheritance)
在面向对象编程中,大量的代码可以通过继承机制进行重用。通过继承创建的类叫做子类,被继承的叫做父类。
继承机制允许我们在一个类的基础上创建另一个类。
示例:
class Calculate:
def __init__(self,num1,num2):
self.num1=num1
self.num2=num2
def div(self):
return self.num1/self.num2
class Math(Calculate):
def __init__(self,num1,num2):
self.num1=num1
self.num2=num2
def add(self):
return self.num1+self.num2
e=Math(1,4)
print(e.div(),e.add)
创建子类的格式为:
class 子类名(父类名):
#
在上面的示例中,Math类通过继承得到了Calculate类的div函数,同时在Calculate类的基础上,添加了add函数。在Python中一个子类可以继承多个父类,格式为:
class C(A,B):
#
重写函数(Override)
在子类中所需的函数往往与父类不同的函数,重写函数可以更新父类函数的函数。重写函数需要在子类创建一个与父类相同名称的函数。
示例:
class Parent:
def __init__(self, a):
self.a = a
def print_var(self):
print("The value of this class's variables are:")
print(self.a)
class Child(Parent):
def __init__(self, a, b):
Parent.__init__(self, a)
self.b = b
def print_var(self):
Parent.print_var(self)
print(self.b)