类、对象与魔法方法

类与对象

  1. 类属性:num=0
    实例属性:self.x=4 self.y=5 C.count=6
  2. 在变量名或者函数名前加上两个下划线(__),这个函数或者变量就会变成私有
  3. 修改完的程序:
class C:
    def myFun(self):
        print('Hello!')
c=C()
c.myFun()
  • 1
  • 2
  • 3
  • 4
  • 5
  1.  
class Ticket:
    def __init__(self,p=100, tp=0):
        self.price = p
        self.total_price = tp
    def cost(self):
        day = int(input("您想要购买哪天的票?请输入正整数1-7:"))
        adult = int(input("请输入需要购买大人的票数(张):"))
        child = int(input("请输入需要购买儿童的票数(张):"))
        if day in range(1, 6):
            self.total_price= adult * self.price + child * self.price * 0.5
            print('总票价为:',self.total_price)
        elif day in range(6, 8):
            self.total_price = adult * self.price * 1.2 + child * self.price * 1.2 * 0.5
            print('总票价为:',self.total_price)
            
m=Ticket()
m.cost()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

结果:

>>> 
=============== RESTART: D:\BaiduNetdiskDownload\python3\练习.py ===============
您想要购买哪天的票?请输入正整数1-7:1
请输入需要购买大人的票数(张):2
请输入需要购买儿童的票数(张):1
总票价为: 250.0
>>> 
=============== RESTART: D:\BaiduNetdiskDownload\python3\练习.py ===============
您想要购买哪天的票?请输入正整数1-7:7
请输入需要购买大人的票数(张):2
请输入需要购买儿童的票数(张):1
总票价为: 300.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

魔法方法

  1. new
    new 是在一个对象实例化的时候所调用的第一个方法,在调用 init 初始化前,先调用 new 。
    new 至少要有一个参数 cls ,代表要实例化的类,此参数在实例化时由 Python 解释器自动提供,后面的参数直接传递给 init 。
    new 对当前类进行了实例化,并将实例返回,传给 init 的 self 。但是,执行了 new ,并不一定会进入 init ,只有 new 返回了,当前类 cls 的实例,当前类的 init 才会进入。
    若 new 没有正确返回当前类 cls 的实例,那 init 是不会被调用的,即使是父类的实例也不行,将
    没有 init 被调用
    init
    init(self[, …]) 构造器,当一个实例被创建的时候调用的初始化方法
    str
    str(self) :
    当你打印一个对象的时候,触发 str
    当你使用 %s 格式化的时候,触发 str
    str 强转数据类型的时候,触发 str
    str(self) 的返回结果可读性强。也就是说, str 的意义是得到便于人们阅读的信息
    repr
    repr(self):
    有 str 的时候执行 str ,没有实现 str 的时候,执行 repr
    repr(obj) 内置函数对应的结果是 repr 的返回值
    当你使用 %r 格式化的时候 触发 repr
    repr(self) 的返回结果应更准确。怎么说, repr 存在的目的在于调试,便于开发者使用
    getitem
    getitem(self, key) 定义获取容器中元素的行为,相当于 self[key]
    setitem
    setitem(self, key, value) 定义设置容器中指定元素的行为,相当于 self[key] = value
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值