python自动化学习9-类与对象

本文深入探讨了Python中类与对象的概念,详细解释了对象方法、静态方法和类方法的区别及使用场景,包括如何通过对象和类访问这些方法,以及在不同方法中互相调用的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类与对象 

 

class phone:
    brand_name='oppo'
    color ='black'
    price =2900
    size = '5.5'
    os = 'Android'
    def call(self,name='xiaocc'):##对象方法
        print('我可以给{}打电话'.format(name))
        return 666

    @staticmethod  ##静态方法
    def send_message(content):
        #静态方法里面调用对象方法
        ##没有传self,就不能用self来访问
        phone().call()#创建一个对象来调用对象方法

        print('我可以发:{}'.format(content))

    @classmethod  ##类方法
    def watch_video(cls,*args):
        #类方法里面调用对象方法,静态方法
        cls.send_message("hello world")
        cls().send_message("python13")#创建一个对象来调用对象方法
        phone().send_message('晚上好呀')#创建一个对象来调用对象方法
        
        print('看视频{}'.format(args))

    def music(self):
        print('听音乐')

    def take_photo(self):  #对象方法里面调用静态方法、类方法的用法
        self.send_message('晚上好')
        self.watch_video('西游记')
        self.call()
        print('我可以拍照')

        phone.send_message('晚安咯')
        phone.watch_video("变形金刚")
        phone.call('哈哈')#这个可以通过传参来访问

    def phone_info(self):
        #在函数里想访问类的属性要用self 或者类
        print('手机的品牌是{},价格是{},颜色是{},操作系统是{}'
              .format(self.brand_name,phone.price,self.color,self.os))


#属性可以通过类和对象来访问
p = phone()
print(p.brand_name)
print(p.size)
print(p.color)
print(p.os)
print(p.price)
#print(phone.brand_name)

p.call()#self是对象本身,必须由对象来调用
#phone.call()
phone.call('华华')#要想用类访问类的方法,必须要传一个参数才行

##对象方法:只能通过对象来调用
##静态方法:@staticmethod 放在函数上面来标记/装饰
            ##可以用类以及对象来调用
            # phone.send_message()
            # p.send_message()
##类方法:@classmethod 放在函数上面来标记/装饰
            ##可以用类以及对象来调用
            # phone.watch_video()
            # p.watch_video()


#类方法和普通函数有啥区别?
#除了对象方法必须有self,类方法必须有cls参数以外,其他并无区别
# 参数类型:位置参数、默认参数、关键字参数、动态参数
#return 支持
#必须通过该类的对象或者该类来访问 不能直接访问
# print(p.call())#打印返回值
# p.send_message('你好')
# p.watch_video("海王","无名之辈")


#p.phone_info()

p.take_photo()
p.watch_video()
p.send_message("111")

 

总结:

对象方法:def call(self): 只能通过对象来访问

 

                @staticmethod

静态方法:def call():可以通过类和对象来访问

 

              @classmethod

类方法:def call(cls):可以通过类和对象来访问 ,cls跟self作用一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值