python面向对象编程

  • class表明这是一个类
  • object:父类的名字,定义的类继承自父类,不写的时候默认是object。object是所有类的直接或间接父类
  • 创建对象就是类的实例化:实例名=类()
class Player(object):
    pass
rado=Player()
rado.name="rado"#这些都是给实例增加属性
rado.age=18#这些都是给实例增加属性
print(type(rado))#<class '__main__.Player'>
print(type(rado.age))#<class 'int'>
print(isinstance(rado, Player))#True
print(isinstance(rado,object))#True

规范一点的话,name、age是这个类所具有的共同特征,没必要单独增加,所以应该这样做

class Player(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
rado=Player("rado",18)
print(rado.name,rado.age)#rado 18

这里看一下新增的内容

class Player(object):
    def __init__(self):#self代表了rado这个实例化对象
        print("start")
rado=Player()#输出start

这说明__init__初始化函数是默认执行的,不能改名
你可以在实例被创建后修改和新增属性

class Player(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
rado=Player("rado",18)
rado.age=19
print(rado.__dict__,type(rado.__dict__))#{'name': 'rado', 'age': 19} <class 'dict'>

__dict__函数会返回所有属性的字典

类属性

区别于之前的实例属性,类属性一般会对实例属性进行统计或限制

class Player(object):
    numbers=0#类属性
    def __init__(self,name,age):
        self.name = name
        self.age = age
        Player.numbers+=1
rado=Player("rado",18)
rado.age=19
print(rado.__dict__)#{'name': 'rado', 'age': 19}
print("欢迎第%d个玩家"%Player.numbers)#欢迎第1个玩家

下面我们综合之前学的内容,编一个可爱类

class cute(object):
    numbers = 0
    levels = ["还行", "好可爱", "化了", "可爱哭了", "此可爱只应理念世界存在"]
    max_cute = 20000

    def __init__(self, name, like, level):
        self.name = name
        self.like = like
        self.level = level
        cute.numbers += 1
        if like > cute.max_cute:
            raise Exception("最大的可爱值是20000,请重试!")
        if level not in cute.levels:
            raise Exception("这样的可爱法律允许但不提倡!")
bingo = cute("bingo", 200000, "挺可爱的")
print(bingo)#输出:Exception: 最大的可爱值是20000,请重试!

结合异常处理的知识改进


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值