定义一个类
class people():
'我是一个人类'
str = '我是公有属性'
__str2 = '我是私有属性'
def __init__(self,name,age):
super(people, self).__init__() #调用父类构造函数,非必须
self.name = name
self.age = age
def printinfo(self): #实例方法都需要至少有一个self参数,即使没有使用到self
print('self.name' + self.name)
#print('name' + name) #报错,没有定义name变量
print('没有self')
@classmethod
def classfun(cla): #需要参数cla,控制类属性
print('我是一个类方法')
@staticmethod
def staticfun(): #静态方法无需参数
print('我是静态方法')
def __add__(self,other):
'加法运算符重载实现逻辑'
return people(self.name + other.name,self.age + other.age)
def __str__(self):
'字符串运算符重载实现逻辑'
return 'name = ' + self.name + '
age = ' + self.age
def __cmp__(self,other):
'比较重载'
def __myfun():
'私有方法定义,无法被外部调用'
class peopleson(people):
def __init__(self): #在执行子类构造函数之前先执行父类构造函数,构造函数也可以不写
super(peopleson,self).__init__('null','null') #调用父类构造函数
people('null','null') #调用父类构造函数
print('子类构造函数执行')
if __name__ == '__main__': #意思是在本函数中执行,不作为模块时
print('自己用')
czm = people('czm','1')
czm.staticfun()
czm.classfun()
czm.printinfo()
people.staticfun()
else:
print('欢迎使用czm的模块')
类的自带属性
__dict__ 返回下面属性的dict
__name__ 类名
__doc__ 文档
__module__ 模块
__bases__ 父类
类的继承
class Father():
def __init__()