1.定义

类:类是抽象的,一类事物的共性的体现。  有共性的属性和行为。

对象:具体化,实例化。有具体的属性值,有具体做的行为。

一个类 对应N多个对象。

类包含属性以及方法。

class 类名:
属性
方法

定义一个类:

class Preson:
def eat(self):
print("正在吃饭");
def sleep(self):
print("正在睡觉")

2.类

2.1命名

类名:符合标识符的规定但是一般是每个单词的首字母大写。(驼峰命名)

2.2创建对象

属性写在类外的情况,就是通过对象.属性,对象.方法()的方法调用

对象的三要素:属性(对象是什么)、方法(对象能做什么)、事件(对象如何响应)

相互关系:类是对象的抽象,对象是类的实例,类是一种抽象事物的分类,对象是一种实例

2.3属性

概念:用于访问类字段的成员;

属性用途:保证数据的安全,作数据的验证;

例如:学生有哪些属性(昵称、学号、性别、年龄、班级、联系方式、城市)

对象属性的两种创建方式:

# self对象的载体

def __int__(self, name, age):
# 创建对象属性
self.name = name
self, age = age

2.4初始化方法

在创建类的实例的时候,会自动调用这个方法,一般是用户对实例属性初始化

class Person:
def __init__(self, name, age):
self.name = name
self.age = age
print("实例化类时,init方法就被调用了") p = Person("tom", 22)
print(p.name)
print(p.age) 结果:
实例化类时,init方法就被调用了
tom
22

2.5 Python中私有化特性

为了让外部无法访问属性或方法,只要在名字前面加上双下划线即可

对属性进行私有化 :__属性

对方法进行私有化:__方法()

class Secret:
__name = 'yoda' # 加上双下划线私有化属性 def get_name(self):
return self.__name def __secret(self): # 私有化方法
print("can't find")

3.类的语法

语法:

class 类名:
  # 属性 - 变量
  # 行为 - 函数
  def 行为1(self):
  # self是我 self是指的实例化对象本身。定义的时候不知道对象到底是谁,用self
  self.属性
  self.行为N   # 初始化 - 在实例化的同时,执行初始化工作。没有return的用法。
  def __init__(self,[参数1,参数2.。])
  ### 初始化工作
  ### # 具体化实例化
实例名 = 类名([参数1,参数2.。。])
# 通过实例名称来访问实例的属性、做行为
实例名.属性
实例名.行为

实战例子:

"""
需求:
人和机器猜拳游戏写成一个类,有如下几个函数:
1)函数1:选择角色1 曹操 2张飞 3 刘备
2)函数2:角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字
3)函数3:电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果
4)函数4:角色和机器出拳对战,对战结束后,最后出示本局对战结果...赢...输。
5)函数5:显示整个游戏过程中,角色赢几局 电脑赢几局,平局几次。 一次猜拳结束后,要提示用户是否继续?按y继续,按n退出。
最后结束的时候输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
""" import random class GussesGame:
datas = {"1": "剪刀", "2": "石头", "3": "布"} def __init__(self):
self.user_game_result = [0, 0, 0] # win,lose,tie # 选择角色
def select_role(self, role_index):
roles = {"1": "曹操", "2": "张飞", "3": "刘备"}
if str(role_index) in roles.keys():
print("您选择的角色为{}".format(roles[str(role_index)])) # 角色出拳
def _role_finger_punch(self):
number = input("请出拳(1剪刀 2石头 3布),出数字即可:")
if number.isdigit() and number in self.datas.keys():
print("角色出拳为:{}".format(self.datas[str(number)]))
return int(number)
else:
print("角色出拳错误!!角色可出拳仅限为 1剪刀 2石头 3布") # 电脑出拳
def _computer_finger_punch(self):
number = random.randint(1, 3)
if str(number) in self.datas.keys():
print("电脑出拳为:{}".format(self.datas[str(number)]))
return number # 人机对战
def battle(self):
# 用户出拳
role_number = self._role_finger_punch()
# 电脑出拳
computer_number = self._computer_finger_punch()
# PK
if computer_number is not None and role_number is not None:
if (role_number, computer_number) in [(1, 3), (2, 1), (3, 2)]:
print("恭喜,你赢了!一统江湖!")
self.user_game_result[0] += 1
elif role_number == computer_number:
print("平局!实力不相上下!")
self.user_game_result[2] += 1
else:
print("噢嗬!你败了!手下败将,敢不敢再来一局!")
self.user_game_result[1] += 1
else:
print("人机猜拳失败!!原因是某一方出拳不符合要求!") # 是否继续玩
is_go_on = input("还没尽兴?是否继续?按y继续,按n退出。")
if is_go_on == "y":
return True
else:
return False # 战果显示
def show_user_game_result(self):
print("角色在本轮游戏当中的战果为:{}胜{}败{}平局".format(*self.user_game_result)) if __name__ == "__main__":
# 游戏 开始
one = GussesGame()
# 选角
one.select_role(1)
while True:
# 人机battle
is_go_on = one.battle()
# 继续battle吗
if is_go_on is False:
print("不玩了,拜拜!!")
break # battle的最终结果
one.show_user_game_result()

最新文章

  1. ie 7/8不支持trim的属性的解决方案
  2. PL/SQL查询oracle数据库对象
  3. aix DNS 配置以及网络命令traceroute和nslookup 和 dig 命令
  4. C语言错误之--初始值(低级错误)
  5. php phpeclipse + xampp 配置安装过程
  6. 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化
  7. JavaScript入门(4)
  8. android--使用Struts2服务端与android交互
  9. Unity模拟龙之谷人物行走简单控制
  10. 【BZOJ5303】[HAOI2018]反色游戏(Tarjan,线性基)
  11. ios 输入框问题
  12. Linux 操作 oracle 数据库
  13. 转:如何捕获winform程序全局异常?
  14. hive 修复分区、添加二级分区
  15. oracle 执行的时候,显式输出结果!: set serveroutput on;
  16. 【AtCoder】AGC011 D - Half Reflector
  17. 微博推荐算法学习(Weibo Recommend Algolrithm)
  18. 关于Cocos2d-x的专属数据类型
  19. 我是大SB
  20. 笔记:加密 RSA AES

热门文章

  1. Winform Dock顺序调整
  2. 【红日安全-VulnStack】ATT&CK实战系列——红队实战(二)
  3. 《单元测试之道》Java版学习日志
  4. 基础才是重中之重~BouncyCastle实现的DES3加密~java通用
  5. U8CO使用C#版(一)
  6. 读取平台管理员xlsx文件
  7. Python获取网页html代码
  8. 什么是CDN?哪些是流行的jQuery CDN?使用CDN有什么好处?
  9. redo log 有什么作用?
  10. 解析STM32的库函数