python面向对象-cs游戏示例
#!/usr/local/bin/python3
# -*- coding:utf-8 -*- class Role(object):
n = 123 # 类变量
name = "我是类name"
def __init__(self, name, role, weapon, life_value=100, money=15000):
# 构造函数
# 在实例化时做一些类的初始化的工作
self.name = name # 实例变量(静态属性),作用域仅限实例本身
self.role = role
self.weapon = weapon
self.__life_value = life_value # 属性前加上两个下划线__代表这个属性为私有属性,外部无法调用
self.money = money def __del__(self): #析构函数
pass#print("%s 彻底死了。。。"% self.name) def show_status(self):
print("name:%s weapon:%s life_val:%s"%(self.name, self.weapon, self.__life_value)) def __shot(self): # 方法前加上两个下划线__代表这个方法为私有方法,外部无法调用
print("shooting...") def got_shot(self):
print("%s:ah...,I got shot..."% self.name)
self.__life_value-=50 def buy_gun(self, gun_name):
print("just bought %s" % gun_name)
'''
# 类变量和实例变量调用优先级:先找实例变量,如果实例中没有,那么就去找类变量
print(Role.n, Role.name)
r1 = Role('Alex', 'police', 'AK47') # 对象,又叫做Role这个类的实例
r1.name = "张宇" # 对实例变量重新赋值
r1.cloth = True # 增加了新的实例变量(只在实例r1中才有,跟r2没有关系)
del r1.weapon #删除了实例变量
r1.n = "改类变量" # 其实此处并不是改类变量,而是在实例中创建类一个变量n而已,和类变量没有关系
print(r1.n, r1.name, r1.cloth)
r2 = Role('Jack', 'terrorist', 'B22')
r2.name = "马宏燕"
print(r2.n, r2.name) Role.n = 456
print(r1.n, r2.n)
'''
'''
# 析构函数示例:
r3 = Role('zhangyu', 'police', 'SKS')
r3.buy_gun("AK47")
r3.got_shot()
del r3
r4 = Role('mahongyan', 'police', 'SKS')
r4.buy_gun("AK47")
r4.got_shot()
''' # 私有属性值的修改示例:
r5 = Role('mahongyan', 'police', 'SKS')
r5.got_shot()
r5.show_status()
python面向对象-cs游戏示例的更多相关文章
- Python开发【第六章】:Python面向对象
编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...
- Python面向对象-day07
写在前面 上课第七天,打卡: 时间的高效利用: 前言: 今天egon老师补充了下 is 和 == 的区别,整理如下:Python中变量的属性以及判断方法 一.面向过程和面向对象 - 1.面向过程 核心 ...
- Python面向对象初始(三大特征,多态,继承,封装)
Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...
- python面向对象--快速入门
1面向对象基本用法 1.1基本格式 class 类名: def __init__(self,x): self.x = x def 方法名字 (self): #函数在类里称为方法,self就是固定参数, ...
- python 面向对象初级篇
Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...
- Python 面向对象 基础
编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
- python开源项目及示例代码
本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...
- Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
随机推荐
- IT人的格言警句
程序员困境:我们通过编码谋生,但环境却正在摧毁我们这种谋生的能力. 在技术日新月异的IT行业,“专家”这个词其实是个危险信号,意味着你的知识距离老化不远了.IT工程师应该经常更换工作领域,了解多个领域 ...
- maven学习(三)maven仓库
官网图片: maven仓库: 仓库通常配置在settings.xml文件中,此处注意settings.xml的优先级:用户 > 全局,广义上maven的仓库一共包含两种: 1.本地仓库,默认在& ...
- memcached与spring集成
一.背景 销售CRM(项目A)将负责管理项目信息系统(项目B)的支付与权限 上级要求为避免频繁调用CRM接口,中间放一级缓存,但要做到缓存中保证最新数据 因项目B已使用memcache作缓存,所以决定 ...
- 如何给PDF加水印
- nginx配置+uwsgi+负载均衡配置
nginx静态文件配置 location /static{ alias /var/www/myApp/static; } sudo mkdir -vp /var/www/myApp/static/ s ...
- Linux下Vue项目搭建karma测试框架
前提:vue项目已创建,node.js.npm已安装 1.全局安装karma脚手架 karma-cli [貌似可以不安装] #npm i -g karma-cli 2.转到Vue项目目录,项目下安装 ...
- c++链表实现学生成绩管理系统(简易版)
#include<iostream> using namespace std; typedef struct student{ int id;//学号 string sex; string ...
- userdel
功能说明:用于删除指定的用户及该用户相关的文件. 参数选项:-f 强制删除用户,即使用户当前已登录.-r 删除用户的同时,删除与用户相关的所有文件. 说明:尽量不要用userdel删除用户,而是采用在 ...
- JQuery datatables 标题和内容居中显示
1.如题,使用到了强大的表格插件datatables,要使标题和内容都居中显示,只需要在jsp引入css,写上如下内容即可: /*qiulinhe:2016年11月7日13:48:26*/ /* da ...
- ACM-ICPC 2017 Asia Xi'an J LOL 【暴力 && 排列组合】
任意门:https://nanti.jisuanke.com/t/20750 J - LOL 5 friends play LOL together . Every one should BAN on ...