面向对象编程基础

一、类和对象

1.定义类
在Python中可以使用`class`关键字定义类,然后在类中通过之前学习过的函数来定义方法,这样就可以将对象的动态特征描述出来,代码如下所示。
Python
在Python2中这个object一定要写,但是在Python3中可写可不写(默认就继承了object).
class Student(object):
        __init__是一个特殊方法用于在创建对象时进行初始化操作
         通过这个方法我们可以为学生对象绑定name和age两个属性
2.实例
(1)
class Student(object):
print('hello')
'''
第二步初始化,初始化自己.
当你的类有一些公用变量的时候,你就可以初始化
初始化中经常放入公有的变量
函数里必须有self
'''
def __init__(self,name):
'''
在类中,一切的变量和函数都要有印记(self)
'''
self.name = name
def def1(self,num):
self.num = num
print(self.num)
print(self.name)
def def2(self):
print(self.num)
print(self.name)

if __name__=='__main__':
#实例,类名带括号“Student()”,直接运行初始化
student = Student('hhh')
student.def1(100)
student.def2()


(2)王者荣耀案例
# 王者农药
# 人机对战
# 1.点击人机对战的按钮(输入)
# 2.挑选人物(典韦,赵云,鲁班)
# 3.显示战力,技能,防御
# 4.人物确定,随机出1个人机,包括战力,名字...等信息显示
# 5.点击开始按钮..
# 6.进入加载页面...

import numpy as np
class wangzhe:
def __init__(self):
"""
初始化王者农药类.
Arguments:
----------
zhaoyun[zhaoyun_xx]:关于人物赵云的参数
dianwei[dianwei_xx]:关于人物典韦的参数
luban[luban_xx]:关于人物鲁班的参数
"""
self.zhaoyun = '[1] 赵云'
self.zhaoyun_zhanli = 250
self.zhaoyun_fangyu = 250
self.dianwei = '[2] 典韦'
self.dianwei_zhanli = 300
self.dianwei_fangyu = 1000
self.luban = '[3] 鲁班'
self.luban_zhanli = 10000
self.luban_fangyu = 10
def choose_model(self):
"""
选择模式
-------
可选模式暂时只有一个1.
"""
mode = input('可选模式[1/2]:1.人机对战,2.多人对战')
if mode == '1':
self.choose_people()
else:
print('🤮 正在开发中...不要着急!')
def choose_people(self):
"""
用户选择人物..
"""
people = input('请选择你的英雄:(%s,%s,%s)'%(self.zhaoyun,self.dianwei,self.luban))
if people == '1':
print(' 赵云:')
self.information(self.zhaoyun_zhanli,self.zhaoyun_fangyu)
self.random_people()
elif people == '2':
print(' 典韦:')
self.information(self.dianwei_zhanli,self.dianwei_fangyu)
self.random_people()
elif people == '3':
print(' 鲁班:')
self.information(self.luban_zhanli,self.luban_fangyu)
self.random_people()
else:
print('(_)? 不懂你的选择')
self.choose_people()

def information(self,zhanli,fangyu):
"""
打印各个人物的信息
Arguments:
---------
zhanli: 人物的战力参数
fangyu: 人物的防御参数
"""
print('战力:%s,防御%s'%(zhanli,fangyu))

def random_people(self):
"""
电脑随机选择人物..
"""
print(' 电脑开始选择英雄:')
people = np.random.choice(['1','2','3'])
if people == '1':
print(' 和你对战的是赵云:')
self.information(self.zhaoyun_zhanli,self.zhaoyun_fangyu)
elif people == '2':
print(' 和你对战的是典韦:')
self.information(self.dianwei_zhanli,self.dianwei_fangyu)
elif people == '3':
print(' 和你对战的是鲁班:')
self.information(self.luban_zhanli,self.luban_fangyu)
self.start()
def start(self):
"""
运行选择的模式
"""
print('[+] 马上进入游戏...')

def Runing(self):
"""
启动函数...
"""
print('[+] 正在加载...')
self.choose_model()

if __name__ == "__main__":
runing = wangzhe()
runing.Runing()


posted @ 2019-08-05 15:59  GEJIAJIAHUI  阅读(143)  评论(0编辑  收藏  举报