Python类的方法(学习笔记)

没有考虑面向对象也没有类,只是说定义一个功能在脚本文件里,这时候它就是函数。
如果是以面向对象的形式来写一个类,封装一个类的行为的时候,它成为方法。

1、实例的方法

person.py

class Person:
    def __init__(self, name='', age=0, gender='男')        //self 表示当前的实例
        self.name = name
        self.age = age
        self.gender = gender


    def say(self, word):                                    //self 保留表示实例方法
        print("{} say: {}".format(self.name, word))



>>>from person import Person
>>>p = Person('Tom', 20)
>>>p.name
'Tom'
>>>p.say('今天天气真好')
Tom say: 今天天气真好
>>>p2 = Person('Jerry', 23)
>>>p2.say('我想学Python')
Jerry say: 我想学Python 


1、

cellphone.py

class CellPhone:
    def __init__(self, brand, price=0.0)
        self.brand = brand
        self.price = price

    def on(self):
        print('{} 手机开机...'.format(brand))


    def send_message(self, to, message):
        print(f'{self.brand} 给 {to}发送短信, 内容是:{message}')


>>>from cellphone import CellPhone
>>>c = CellPhone('iphone6s', 5800.0)
>>>c2 = CellPhone('Mi5s', 2900)
>>>c.brand
'iphone6s'
>>>c2.brand
Mi5s

>>>c.on()
iphone6s 手机开机...

>>>c2.on()
Mi5s 手机开机...

>>>c2.send_message('1234567890', '我想学习Pyhon')
Mi5s 给 1234567890 发送短信, 内容是:我想学习Python

>>>c.send_message('1234567890', '今天天气真好' )
iphone6s 给 1234567890 发送短信, 内容是:今天天气真好


>>>CellPhone.on()        //TypeError: on() missing 1 required positional argument: 'self'

>>>CellPhone.on(c)
iphone6s 手机开机...

>>>CellPhone.on(c2)
Mi5s 手机开机...

2、 __开头结尾的函数属于特殊函数

class CellPhone:
    def __init__(self, brand, price=0.0)
        self.brand = brand
        self.price = price


    def __repr__(self):                    //返回当前对象的表现
        return '<CellPhone : {}>'.format(self.brand)


    def __str__(self):                    //返回当前对象的字符串表现
        return '[CellPhone : {}]'.format(self.brand)


    def __add__(self, other):                //运算符重载
        return self.price + other.price


    def on(self):
        print('{} 手机开机...'.format(brand))


    def send_message(self, to, message):
        print(f'{self.brand} 给 {to}发送短信, 内容是:{message}')



>>>import CellPhone
>>>c = CellPhone('Mi', 2900)
>>>c2 = CellPhone('iphone5s', 5900)
>>>c
<CellPhone : Mi>
>>>print(c)
[CellPhone : Mi]
>>>print(c + c2)
8800
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值