Python:面向对象

'''
知识点汇总
1-面向对象的引入:
    1-先找出相应的对象
    2-把这些涉及的对象的关系进行组网
2-类/实例
    1-类:
        1-现实不存在--抽象的概念--人类--鸟类
        2-一类具有相同特征事物的统称!
    2-类里面有
        1-静态---属性(特征)---变量
        2-动态---方法(行为)---函数
3-实例---也叫 对象
    1-在这个类里面实际存在的个体
    2-类是实例的抽象化概念
    3-实例是类的具体实例化体现       
4-实例化操作:        
    1-类里面的变量--属性
    2-类里面的函数--方法
    3-创建实例 t1 = Tiger()   
5-静态属性和实例属性
    1-静态属性:
        1-也叫类属性
        2-它属于整个类的
        3-用法:1-类.属性    2-实例.属性
    2-实例属性:
        1-这个属性是  那个实例的,不属于整个类---其他实例不能共享   
        2-定义在 初始化方法 __init__ 里
        3-一般在创建实例的时候就给定
        4-只要创建实例--def __init__(self):初始化方法肯定会调用
        5-self 只是代表词,并不是关键字--可以替换,但不建议替换!不能缺省
        6-id(self)
        7-实例化属性---只能    实例.属性
        8- self 这个实例的本身
6-方法:
    1-静态方法
        1-属于整个类
        2-类可以直接调用,不需要实例化 ----类.方法 / 实例.方法
        3-用 @staticmethod 修饰 只能修饰紧跟的那一个
    2-实例方法:
        1-有self  
        2- 实例.方法 
7-取随机数 
    from random  import randint
    randint(0,2)--取 0 1 2 闭区间
8-时间处理:
    1- import time
       time.time()---单位是s 秒   从1970算起
9-继承
    1-继承关系可以是多个父类
    2-重写--在父类跟子类之间的一个多态的体现!
    3-在重写情况下,调用父类的方法
        super(SouTiger,s1).roar()
        super(子类类名,子类的实例名).roar()
    4- __name    私有属性
'''''



'''
类:
    1- 特征
    2- 行为
    --3- 构造方法
游戏分解:
    1- 找出需求里面涉及的对象
        1- 房间
        2- 老虎
            1- 特征:俗称,专业术语:属性,本质是:变量
                1- 叫声***静态属性
                2- 体重**实例属性--每一个实例可以不一样!
                3- 食物
                4- 高
            2- 行为:俗称,术语:方法  本质就是 函数
                1- 睡
                2- 跑
                3- 叫---***
                4- 吃---***
                5- 打
        3- 羊
    2- 对象关系组网


'''

class Tiger:  # 定义类
    # 俗称:特征  本质是:变量----术语:属性  静态属性:属于整个类
    clsaaName = '老虎'
'''
静态属性(类属性)   老虎的名称(该类的所有实例共享的属性)
# 静态属性调用:1、实例.属性 2、类.属性
'''

# t1 = Tiger() # 创建实例
# t2 = Tiger()# 创建实例
# print(t1.clsaaName)     # 实例.属性
# print(Tiger.clsaaName)  # 类.属性
#
#
# class Tiger:
#     clsaaName = '老虎'
#
#     # 本质是一个函数     术语:方法 ---初始化方法:创建实例用的,自动调用
#     def __init__(self,inweight): # self 会自动传入这个实例对象
#         print('你看,我被执行了',inweight)
#         self.weight = inweight
# # 创建实例
# t1 = Tiger(100)
# t2 = Tiger(200)
# print(t1.weight,t2.weight)
# # 实例属性不能用类调用
# print(Tiger.weight) #  对象(实例)“tiger”没有属性“weight”



# -------------------------对象方法-----------------------------
'''
        概念:通过定义在类里面的函数
对象方法 实例方法:每个具体实例相关的方法           本质是函数
        静态方法:共有的方法,与每个具体实例无关    本质是函数

'''
# class Tiger:
#     clsaaName = '老虎'
#     def __init__(self,inweight):
#         self.weight = inweight
##     实例方法  ---那个老虎叫 体重有变化(单个)
#     def roar(self):
#         self.weight -=5
#         print('WOW!!,体重减了5斤!!')
#     def feed(self,food):
#         if food =='rou':
#             self.weight +=10
#             print('喂对了')
#         else:
#             self.weight -= 10
#             print('抱歉,喂错了')
#
#     @staticmethod
#     def tell_weight():
#         print('静态方法')
#
# t1 = Tiger(100)
# t2 = Tiger(200)
# t1.roar()
# t1.feed('草')
#
# print(t1.weight,t2.weight,t1.tell_weight())
#------------------------静态方法---------------------
# '''
# 1.静态方法:与每个实例无关
# 2.@staticmethod    修饰(装饰器)
# '''
# ----------------------对象组合--------------------

# class Room:  #  实例属性  房间 动物
#     RoomName = '房间'
#     def __init__(self,inNum,inAnimol):
#         self.num = inNum
#         self.animol = inAnimol
#
#
# t5=Room()
# t6 = Room()
# print(t5.roomName)    # 实例.属性
# print(Room.roomName)  # 类.属性


class Tiger:
    clsaaName = '老虎'
    def __init__(self,inweight=200):
        self.weight = inweight
    # 实例方法  ---那个老虎叫 体重有变化(单个)
    def roar(self):
        self.weight -=5
        print('WOW!!,体重减了5斤!!')
    def feed(self,food):
        if food =='rou':
            self.weight +=10
            print('喂对了')
        else:
            self.weight -= 10
            print('抱歉,喂错了')

    @staticmethod
    def tell_weight():
        print('静态方法')
class Room:  #  实例属性  房间 动物
    RoomName = '房间'
    def __init__(self,inNum,inAnimol):
        self.num = inNum
        self.animol = inAnimol
class Sheep:
    pass


t1 = Tiger(100)
t2 = Tiger(200)
t1.roar()
t1.feed('草')
print(t1.weight,t2.weight)

r1 = Room(1,'羊')

# -------------------游戏初始化操作-----------------------
from random import randint  # 取随机数
roomList = []  # 任意类型-----存放的房间的实例
for one in range(1,11): # 1~10
    if randint(0,1) ==0:
        ani = Tiger(200)
    else:
        ani = Sheep(200)
    room = Room(one,ani)
    roomList.append(room)
#-----------------------------------------------------------------
print(randint(0,2))  # 0 1 2 随机

# 抽奖
# nameList = ['a','b']
# print(nameList[randint(0,1)])


import time
print(time.time()) # 获取时间---单位是s  从1970----至今

startTime = time.time() # 开始时间

while True:
    curTime = time.time()
    if curTime -startTime>120:
        break










  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值