#!/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游戏示例的更多相关文章

  1. Python开发【第六章】:Python面向对象

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...

  2. Python面向对象-day07

    写在前面 上课第七天,打卡: 时间的高效利用: 前言: 今天egon老师补充了下 is 和 == 的区别,整理如下:Python中变量的属性以及判断方法 一.面向过程和面向对象 - 1.面向过程 核心 ...

  3. Python面向对象初始(三大特征,多态,继承,封装)

    Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...

  4. python面向对象--快速入门

    1面向对象基本用法 1.1基本格式 class 类名: def __init__(self,x): self.x = x def 方法名字 (self): #函数在类里称为方法,self就是固定参数, ...

  5. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  6. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  7. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册       首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...

  8. python开源项目及示例代码

    本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...

  9. Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)

    Python 面向对象(初级篇)   51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

随机推荐

  1. canvas入门(一)

    canvas是HTML 5中非常重要的一个标签,关于它的功能和使用方法在这我就不一一细谈了,毕竟网上相关知识太多,而且自认为如果是我总结那些知识会让读者看的更乱,所以我就不白费力气了,贴上链接:htt ...

  2. jdk时区相差8小时

    设置JVM的默认时区为东八区(北京时间)在下面四个目录(jre6\lib\zi\Etc.jre6\lib\zi.jdk1.6.0_18\jre\lib\zi\Etc.jdk1.6.0_18\jre\l ...

  3. greenplum导数据

    Greenplum and Hadoop HDFS integration Step 1: Install Java on greenplum Step 2: Set JAVA and HADOOP ...

  4. 使用while循环+try-except定位元素

    selenium学习过程中,发现自己遇到的最大的困难不是那些元素的操作,而是元素的定位,有时候明明利用firebug将xpath路径确认好了,但是在定位元素的时候还是会报错,后来在度娘上找到了一个方法 ...

  5. Locust性能测试2 分布式运行

    locust分布式可以是本机多进程,也可以是本机作为master,其他机器作slave. 试一下本机的多进程运行: 1  控制台输入 locust -f 脚本路径 --master 2  打开另一个控 ...

  6. Android(java)学习笔记17:网络编程的概述

    1. 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 ...

  7. POJ 1088 滑雪 【记忆化搜索经典】

    题目链接:http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:  ...

  8. 2018.11.25 struts2与OGNL表达式的结合(高级)

    两者的结合原理 底层源码分析 栈原理 先进后出 我们的valuestack其实是一个接口 在实现类中有这个参数 CompoundRoot的类继承的是ArrayList,具体实现弹栈和压栈的方法具体实现 ...

  9. maven之构建多模块maven工程

    (一)环境搭建 1.Maven下载   ;   http://maven.apache.org/download.cgi 第一个在Linux使用,第二个是在Windows,第三和第四是源码: 我们将下 ...

  10. JDBC Like 参数化查询

    构造SQL 语句: String sql = "select id,name,age,gender,birth from student where name like ?"; 参 ...