#!/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. bit byte 字 字节 关系 简列

    字 word 字节 byte 位 bit 字长是指字的长度 1字=2字节(1 word = 2 byte = 16bit) 1字节=8比特(1 byte = 8bit) 1比特=1位 一个字的字长为1 ...

  2. 【MATLAB】R2017b两个镜像文件如何安装

    1.采用DEAMON TOOLS加载镜像1. 2.当安装过程中弹出[请插入DVD2]时,在原来的盘符上面右键点击[装载],选择DVD2的镜像文件.在安装程序处选择[继续]即可正常安装.

  3. Siebel Tools 开发笔记

    1.在Siebel Client上的菜单Help -> View 中可以找到开发所常用的信息 Screen:   此画面所使用的Screen名字在Tools的Object Explorer中的[ ...

  4. Selenium2学习(二)-- 操作浏览器基本方法

    前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是web ...

  5. March 15 2017 Week 11 Wednesday

    The starting point of all achievements is desire. 成功的第一步是渴望. Only you desire for somethings, you can ...

  6. 如何用python语言撸出图表系统

    公司指标图表化显示,解决目前跟踪技术指标数据的各种不方便:于是话不多说,撸起袖子就是干: 1.挖掘需求和罗列功能点: a.图表显示技术指标数据. b.根据服务名和系统名查询对应的图表. c.根据日期区 ...

  7. 20165322 2017-2018-2《Java程序设计》课程总结

    20165322 2017-2018-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:我期望的师生关系 预备作业2:做中学learning by doing个人感想 预备作业 ...

  8. Class<T>和Class<?>区别

    Class<T>在实例化的时候,T要替换成具体类Class<?>它是个通配泛型,?可以代表任何类型

  9. 【洛谷P1886】滑动窗口

    滑动窗口 [题目描述] 有N个数字,以及一个大小为k的窗口.现在这个窗口从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. 思路: k<=N<=1000000,暴 ...

  10. EF执行SQL语句

    使用上下文中的Database.SqlQuery<对应的表名>(sql语句) var data = dbcenter.Database.SqlQuery<CcBusiFormview ...