前言
本节主要对Python中类的概念进行介绍。类完全由面向对象概念所引出。
正文
定义一个类
class people:
'帮助信息'
number = 100
#构造函数,初始化方法,当创建一个类的时候,首先会调用它
def __init__(self, name, age):
self.name = name
self.age = age
def diplayNumber(self):
print("number = :", people.number)
def displayName(self):
print(self.name)
实例化对象
p1 = people('chen mo', 37)
p2 = people("chen rui min", 1)
获取name属性
p1.name
'chen mo'
p2.name
'chen rui min'
调用方法
p1.diplayNumber()
number = : 100
p2.diplayNumber()
number = : 100
p2.name = "chen rui lin"
p2.name
'chen rui lin'
查看对象中是否包含某属性
hasattr(p1, "name")
True
获取对象中的某属性
getattr(p1, "name")
'chen mo'
修改对象中的属性
setattr(p1, "name", "chenmo")
#输出类注释
print(people.__doc__)
#输出类名
print(people.__name__)
#输出类定义所在模块
print(people.__module__)
#输出类的父类构成元素
print(people.__base__)
#输出类的组成
print(people.__dict__)
people
__main__
<class 'object'>
{'__module__': '__main__', '__doc__': '帮助信息', 'number': 100, '__init__': <function people.__init__ at 0x103080048>, 'diplayNumber': <function people.diplayNumber at 0x103080510>, 'displayName': <function people.displayName at 0x103080950>, '__dict__': <attribute '__dict__' of 'people' objects>, '__weakref__': <attribute '__weakref__' of 'people' objects>}
继承
class Parent:
number = 100
def __init__(self):
print("父类构造函数")
def parentMethod(self):
print("父类方法")
def setAttr(self, attr):
Parent.parentAttr = attr
def getAttr(self):
print("父类属性:", Parent.parentAttr)
def overridedMethod(self):
print("父类被覆盖方法")
class Child(Parent):
def __init__(self):
print("子类构造函数")
def childMethod(self):
print("子类方法")
def overridedMethod(self):
print("子类覆盖父类方法")
c = Child()
c.childMethod()
c.parentMethod()
c.setAttr(200)
c.getAttr()
c.overridedMethod()
子类构造函数
子类方法
父类方法
父类属性: 200
子类覆盖父类方法