特殊方法的名字以两个下划线开头,以两个下划线结尾,例如: str,call,dict,doc,new,del,all
(1):str 如果一个类中定义了__str__方法,在打印对象时,默认输出该方法的返回值,没有定义会返回对象的地址
1:没有调用__str__方法,输出结果是一个对象的地址
调用__str__方法,输出结果是该方法的返回值
总结:实例化对象时会调用__str__()方法,如果没有定义__str__()方法会打印一个对象的地址,如果定义__str__()并且有返回值,就会打印其中的返回值
(2):call 如果一个类中定义了__call__方法,对象后面加括号,会触发执行__call__方法
(3):dict 查看类或对象中的所有成员
(4):doc 每个对象都会有一个__doc__属性,用于描述该对象的作用,相当于注解
(5):new 生成一个对象,new__优先于__init,如果定义__new__方法有返回值才会调用__init__,反之则不会调用
(6):del 析构方法,删除无用的内存对象(当程序结束会自动自行析构方法)
import random #武器 class Wuqi(): def __init__(self): #名称 self.name = ["春秋阙","绣春刀","渊虹","大夏龙雀","碧血长风","黑月之泪","冰魄银针","擂鼓瓮金锤",'天问', '太一的眼镜','贝爷的刀','会消失的飞刀','变异的蛇','五彩的屎','草原上的弓','螺旋升天斩'] #品质 self.pinzhi = ["彩色", "金色", "橙色", "紫色", "蓝色", "白色", "五彩"] # 等级 self.dengji = ["新手",5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100] #武器随机等级 def wuQidengji(self): a = random.choice(self.dengji) return '武器等级:{}\n'.format(a) # 武器随机品质 def wuQipinzhi(self): b = random.choice(self.pinzhi) return "武器品质:{}\n".format(b) #武器随机名字 def wuQiname(self): c = random.choice(self.name) return '武器名称:{}\n'.format(c) def __str__(self): return "{}{}{}".format(self.wuQiname(),self.wuQidengji(),self.wuQipinzhi()) #动作 def dongzuo(): dt = ['你死了', '你在地上爬', '你在奔跑', '你在上小学', '你在上中学', '你在尿床', '你在学习说话', '你在练舞', '你在练习童子功', '你在打麻将', '你跳崖了', '你飞升了'] a = random.choice(dt) return a #世界 class Shijie(): def __init__(self): self.nandu = ['炼狱', '地狱', '困难', '正常', '简单'] self.name = ['幻碧大陆','幽冥大陆','皞皑大陆','五行大陆','魂武大陆','原始大陆','鸿蒙大陆','剑修大陆','灵武大陆', '圣魂大陆','神陨大陆','拉维斯大陆','纳尼亚大陆','绝世界','玄欢空间'] #随机世界难度 def shiJieshuiji(self): a = random.choice(self.nandu) return '你要前往的世界难度是:{}\n'.format(a) #随机世界 def shiJie(self): a = random.choice(self.name) return '你将要前往的世界是:{}\n'.format(a) def __str__(self): return "{}{}".format(self.shiJie(),self.shiJieshuiji()) #勇者 class Yongzhe(): # 年龄,{100,130,190,189,123,137,700,900,133,2124,1555,11313,11,1111,23,2,3,4,14,12} # 技能,{"魅惑","魅惑之吻","鞭挞","炎爆","随机召唤宠物","随机召唤恶魔","破风斩","死亡雷射"} # 天赋 {"都是世界的错","10倍暴击伤害","10倍攻击速度","天命在我","寒冰领域","火焰领域","无限火力","世界之子"} def __init__(self): #种类 self.zhonglei = ["人类","恶魔","兽人","妖精","精灵","矮人","半兽人","魔物","天使","天神","鬼神","魔鬼"] #姓名 #等级 self.dengji = [10,30,90,89,23,37,70,90,33,24,15,13,11,81,23,62,53,44,14,12] #技能 self.jineng = ["旋龙幻杀","百鬼夜行","狱火炼魂","绝圣弃智","魔魂天咒","霸天戮杀","邪神傲世","缠绵","碧影","逍遥游","真元华闪","冰心诀","玄妙镜", "魅惑","魅惑之吻","鞭挞","炎爆","随机召唤宠物","随机召唤恶魔","破风斩","死亡雷射"] #天赋 self.tianfu = ["蛮横之力","思想之力","武器专精","奥术知识","硬化皮肤","荣誉护卫","精神扩张","物质转换","坚毅","冥想", "大弱智为鱼","夭折之项","霉神在世","都是世界的错","10倍暴击伤害","10倍攻击速度","天命在我","寒冰领域","火焰领域","无限火力","世界之子"] #性别 self.xingbie = ['男', '女', '人妖'] # 身份 self.sf = ['公爵', '侯爵', '伯爵', '子爵', '男爵', '国王'] # 随机身份 def shengFeng(self): a = random.choice(self.sf) return "身份:{}\n".format(a) # 随机性别 def xingBie(self): a = random.choice(self.xingbie) return "性别:{}\n".format(a) #随机种类 def zhongLei(self): i = random.choice(self.zhonglei) return '种族:{}\n'.format(i) #随机技能 def jiNeng(self): i = random.choice(self.jineng) return '技能:{}\n'.format(i) #随机等级 def dengJi(self): i = random.choice(self.dengji) return "年龄:{}\n".format(i) #随机天赋 def tianFu(self): i = random.choice(self.tianfu) return '天赋:{}\n'.format(i) #随机选择开始 def __str__(self): return "{}{}{}{}{}".format(self.zhongLei(),self.xingBie(),self.shengFeng(),self.dengJi(),self.tianFu(),self.jiNeng()) #勇者 yz = Yongzhe() #世界 sj = Shijie() #武器 wq = Wuqi() def _kaiShi(): return if __name__ == '__main__': _kaiShi()