面向对象
来源:互联网 发布:时间软件下载 编辑:程序博客网 时间:2024/06/14 16:09
class是关键字,表示类
创建对象,类名称后加括号即可
test 1:
内容转载Crossin的编程教室
class MyClass: name='Sam' #类变量name,值设置为’Sam' def SayHi(self): #类方法SayHi,类方法和我们之前定义的函数区别在于,第一个参数必须为self print('Hello %s' % self.name)mc=MyClass() #定义一个对象mcprint (mc.name) #调用类变量的方法是“对象.变量名”mc.name='Lily'mc.SayHi()
2)
假设我们有一辆汽车,我们知道它的速度(60km/h),以及A、B两地的距离(100km)。要算出开着这辆车从A地到B地花费的时间。(很像小学数学题是吧?)
class Car: #定义类 speed=1 def drive(self,distance): time=distance/ self.speed print(time)car1=Car() #定义一个对象car1car1.speed=60.0car1.drive(100.0)car1.drive(200.0)car2=Car() #定义一个对象car2car2.speed=150.0car2.drive(100.0)car2.drive(200.0)
输出为:
runfile('C:/Users/n/Documents/untitled5.py', wdir='C:/Users/n/Documents')1.66666666666666673.33333333333333350.66666666666666661.3333333333333333
3)通过self间接调用被封装的内容(转自:[Python 面向对象(初级篇](http://python.jobbole.com/82023/)执行类中的方法时,需要通过self间接调用被封装的内容'''self 是一个形式参数当执行 obj1 = Foo(‘wupeiqi’, 18 ) 时,self 等于 obj1当执行 obj2 = Foo(‘alex’, 78 ) 时,self 等于 obj2'''#创建类class Foo: def __init__(self,name,age): self.name=name self.age=age def detail(self): #indent是缩进的意思 print(self.name) print(self.age)obj1=Foo('wupeiqi',18) obj1.detail()'''# Python默认会将obj1传给self参数,即:obj1.detail(obj1),所以,此时方法内部的 self = obj1,即:self.name 是 wupeiqi ;self.age 是 18'''obj2=Foo('alex',73)obj2.detail()
Python 面向对象(初级篇)
4)
练习二:游戏人生程序1、创建三个游戏人物,分别是:苍井井,女,18,初始战斗力1000东尼木木,男,20,初始战斗力1800波多多,女,19,初始战斗力25002、游戏场景,分别:草丛战斗,消耗200战斗力自我修炼,增长100战斗力多人游戏,消耗500战斗力
# -*- coding:utf-8 -*-# ##################### 定义实现功能的类 #####################class Person: def __init__(self, na, gen, age, fig): self.name = na self.gender = gen self.age = age self.fight =fig def grassland(self): """注释:草丛战斗,消耗200战斗力""" self.fight = self.fight - 200 def practice(self): """注释:自我修炼,增长100战斗力""" self.fight = self.fight + 200 def incest(self): """注释:多人游戏,消耗500战斗力""" self.fight = self.fight - 500 def detail(self): """注释:当前对象的详细情况""" temp = "姓名:%s ; 性别:%s ; 年龄:%s ; 战斗力:%s" % (self.name, self.gender, self.age, self.fight) print (temp)# ##################### 开始游戏 #####################cang = Person('苍井井', '女', 18, 1000) # 创建苍井井角色dong = Person('东尼木木', '男', 20, 1800) # 创建东尼木木角色bo = Person('波多多', '女', 19, 2500) # 创建波多多角色cang.incest() #苍井空参加一次多人游戏dong.practice()#东尼木木自我修炼了一次bo.grassland() #波多多参加一次草丛战斗#输出当前所有人的详细情况cang.detail()dong.detail()bo.detail()cang.incest() #苍井空又参加一次多人游戏dong.incest() #东尼木木也参加了一个多人游戏bo.practice() #波多多自我修炼了一次#输出当前所有人的详细情况cang.detail()dong.detail()bo.detail()
输出结果:姓名:苍井井 ; 性别:女 ; 年龄:18 ; 战斗力:500姓名:东尼木木 ; 性别:男 ; 年龄:20 ; 战斗力:2000姓名:波多多 ; 性别:女 ; 年龄:19 ; 战斗力:2300
由结果分析:对象是逐个执行的。
阅读全文
0 0
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- PAT 单链表逆转
- 推荐 MySQL事务内幕与ACID
- 换个格式输出整数
- 加法原理和乘法原理
- Kubernetes、Mesos和Swarm:Rancher编排引擎的比较
- 面向对象
- 动态无需加入执行路径的神器
- 信号量与PV操作
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- [deeplearning-005] 一般形式的反向传导算法BP最简推导-3
- [Oracle 11g r2(11.2.0.4.0)]Oracle Golden Gate Training-workshop4
- Ubuntu开启telnet服务
- Maven核心概念学习
- 位运算符