面向对象

来源:互联网 发布:时间软件下载 编辑:程序博客网 时间: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

由结果分析:对象是逐个执行的。

原创粉丝点击