python 类简述
一个最简单的基本类如下:
# -*- coding: utf-8 -*-
class Sjtiqu():
def __init__(self,x):
self.x=x
def jibenmian(self):
print("hello")
if __name__ == '__main__':
sjmy1=Sjtiqu("my1")
print(sjmy1.x)
sjmy1.jibenmian()
上述程序的运行结果为my1 hello
class Sjtiqu(): 创建一个类对象,名称首字母一般为大写,以区别于函数。
def __init__(self,x):
self.x=x
类的构造函数,在创建实例时,会自动运行它,__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身,x就是类的一个属性。当然也可以不设置任何属性,内容以pass略过。
self.x=x代表把形参获得的值传递给self.x属性,当然你可以写成,self.y=x。你还可以不设置形参,直接给属性赋值,如self.yx=56。
def jibenmian(self):
print("hello")
上面代码代表类的一种方法,可通过实例调用执行, sjmy1.jibenmian(),也可以给方法指定属性。在该方法中,也可像初始函数一样设置类的属性,也可以只设置形参,传入后当局部变量使用。如
def jibenmian(self,d):
dd=d
简单的类的继承如下:
#coding=gbk
class B():
def __init__(self,z):
self.z=z
self.w=1
def ee(self):
pass
class A(B):
def __init__(self,x):
self.x=x
self.y=15
def aa(self):
pass
在继承后类A将拥有父类的所有方法,但因为构造函数覆盖了父类的构造函数,所以未拥有父类的属性,可以通过super()函数调取父类的构造函数,如:
class A(B):
def __init__(self,x):
super().__init__()
当然对于被覆盖的父类方法,也可以使用super()函数调取。
class A:
def __init__(self):
self.n = 2
def add(self):
pass
class B(A):
def __init__(self):
self.n = 3
def add(self):
super().add()