前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习之类与对象的学习

python学习之类与对象的学习

作者头像
吾爱乐享
发布2019-12-30 17:13:47
5420
发布2019-12-30 17:13:47
举报
文章被收录于专栏:吾爱乐享吾爱乐享

python学习之类与对象的学习

类的划分标准是:具有相同特征或行为的一类事物

对象:类里面的一个具体的实例。类名()就是一个对象

类的用法:

class ClassName:

类的申明信息

类体

类的说明:

类体包括类的属性和类的方法

类名:见名知意,一般用驼峰命名

创建一个对象,通过对象调用类里面的方法

类属性:就是类的里面的变量

类的方法:就是类里面的函数或方法,类的方法包括3种

类方法:用类和对象   来调用,用法:在方法的上面加一个标记@classmethod

静态方法:用类和对象来调用, 用@staticmethod 放在函数上面来标记它是一个静态方法,静态方法不需要self变量

对象方法:只能用对象访问

类的调用:

在类的外面:

类的属性的调用:

通过对象访问类里面的属性

可以用类来访问属性

通过对象访问类里面的属性print('手机的品牌是:',p.brand_name) 也可以用类来访问属性print('手机的品牌是:',Phone.brand_name)

类的方法的调用:

类的方法调用,通过对象.方法名() p.call()

说明:方法不能用类.方法名()调用,原因是在类里面的方法会有一个slef的参数,这个参数代表是对象,所以用对象可以调用方法可以,而类直接调用方法就不行

在类的里面调用

调用属性:self.属性名或者类名.属性名

代码语言:javascript
复制
 -*- coding: UTF-8 -*-#@Time      :2019/09/07 15:23#@Author    :wuailexiang#@Email     :3142223672@qq.com#@File      :类与对象.pyclass Phone:    '''    这是一个手机类        主要功能有,打电话,发短信,看电视,听音乐        主要属性有,华为,3000,土豪金,android    '''    brand_name = '华为'    price = 3000    color = '土豪金'    os = 'android'    #功能,定义了几个方法    def call(self,name):        print('self的值是:',self)        print('我的功能是打电话,我给{}打电话'.format(name))    @staticmethod    def massage(*arge):        print('我的功能是用来发短信的,我的短信内容是{}'.format(arge))    @classmethod    def watchTV(cls):        print('我的功能是看电视的')    def music(self,music_name='天堂'):        print('我的功能是用来听音乐的,我听的歌曲是{}'.format(music_name))    def calss_info(self):        print('我的手机是{}手机,颜色是{},是{}系统,价格是{}元'.format(self.brand_name,Phone.color,Phone.os,self.price))#调用类p=Phone()# 调用类需要在类的后面加一个括号#在类里面调用属性可以用self.属性名,也可以用类名.属性名p.calss_info()

2.调用方法:

在类里面的对象方法去调用其他方法:在对象方法中调用类方法,需要self.方法名()或类名.方法名(),调用静态方法self.方法名()或类名.方法名()

在类里面的静态方法去调用其他方法:在静态方法中调用对象方法,需要类名().方法名(),调用类方法直接类名.方法名()

在类里面的类方法去调用其他方法:在类方法中调用对象方法,需要类名().方法名(),调用静态方法直接类名.方法名()

代码语言:javascript
复制
# -*- coding: UTF-8 -*-#@Time      :2019/09/07 15:23#@Author    :wuailexiang#@Email     :3142223672@qq.com#@File      :类与对象.pyclass Phone:    '''    这是一个手机类        主要功能有,打电话,发短信,看电视,听音乐        主要属性有,华为,3000,土豪金,android    '''    brand_name = '华为'    price = 3000    color = '土豪金'    os = 'android'    #功能,定义了几个方法    def call(self,name):        print('self的值是:',self)        print('我的功能是打电话,我给{}打电话'.format(name))    @staticmethod    def massage(*arge):        Phone().call('李四')  # 在静态方法中调用对象方法        Phone.music()  # 静态方法中调用类方法        print('我的功能是用来发短信的,我的短信内容是{}'.format(arge))    @classmethod    def watchTV(cls):#类方法,在类方法中调用对象方法,需要类名().方法名(),调用静态方法直接类名.方法名()        cls().call('李四')  # 在类方法中调用对象方法        Phone().call('李四')  # 在类方法中调用对象方法        cls.massage('吾爱乐享', '恭喜发财')  # 类方法中调用静态方法        Phone.massage('吾爱乐享', '恭喜发财')  # 类方法中调用静态方法        print('我的功能是看电视的')    @classmethod    def music(self,music_name='天堂'):        print('我的功能是用来听音乐的,我听的歌曲是{}'.format(music_name))    def calss_info(self):#对象方法        self.call('李四')#对象方法中调用对象方法        self.massage('吾爱乐享','恭喜发财')#对象方法中调用静态方法        Phone.massage('吾爱乐享','恭喜发财')#对象方法中调用静态方法        self.watchTV()#对象方法中调用类方法        Phone.watchTV()#对象方法中调用类方法        print('我的手机是{}手机,颜色是{},是{}系统,价格是{}元'.format(self.brand_name,Phone.color,Phone.os,self.price))#调用类p=Phone()# 调用类需要在类的后面加一个括号p.calss_info()p.watchTV()p.massage('爱学习')

类的方法和类的函数的区别

除了对象方法必须有self,类方法必须有cls参数之外,其他的并无区别

参数类型L位置参数,默认参数,关键字参数,动态参数都有

return也支持

只能通过类与对象访问,不能直接访问

代码语言:javascript
复制
# -*- coding: utf-8 -*-#@Time      :2019/09/07 15:23#@Author    :wuailexiang#@Email     :3142223672@qq.com#@File      :类与对象.pyclass Phone:    '''    这是一个手机类        主要功能有,打电话,发短信,看电视,听音乐        主要属性有,华为,3000,土豪金,android    '''    brand_name = '华为'    price = 3000    color = '土豪金'    os = 'android'    #功能,定义了几个方法    def call(self,name):        print('self的值是:',self)        print('我的功能是打电话,我给{}打电话'.format(name))    @staticmethod    def massage(*arge):        print('我的功能是用来发短信的,我的短信内容是{}'.format(arge))    @classmethod    def watchTV(cls):        print('我的功能是看电视的')    def music(self,music_name='天堂'):        print('我的功能是用来听音乐的,我听的歌曲是{}'.format(music_name))#调用类p=Phone()# 调用类需要在类的后面加一个括号#给类的对象传参p.call('张三')#默认参数p.music()#动态参数p.massage('开心就好','吃饭了吗','打游戏吧')

#关键词参数关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

编写一个手机类

功能:打电话,发短信,看电视,听音乐

特征:品牌名,价格,颜色,操作系统

把上面的手机类转换成代码形式:

对象:huawei,3000,土豪金,android

方法:call(),massage(),watchTV(),music()

案例:

代码语言:javascript
复制
# _*_ coding: utf-8 _*_#@Time      :2019/09/07 15:23#@Author    :wuailexiang#@Email     :3142223672@qq.com#@File      :类与对象.pyclass Phone:    '''    这是一个手机类        主要功能有,打电话,发短信,看电视,听音乐        主要属性有,华为,3000,土豪金,android    '''    brand_name = '华为'    price = 3000    color = '土豪金'    os = 'android'    #功能,定义了几个方法    def call(self):        print('self的值是:',self)        print('我的功能是打电话')    @staticmethod    def massage():        print('我的功能是用来打电话的')    @classmethod    def watchTV(cls):        print('我的功能是看电视的')    def music(self):        print('我的功能是用来听音乐的')#调用类p=Phone()# 调用类需要在类的后面加一个括号# 通过对象访问类里面的属性print('手机的品牌是:',p.brand_name)print('手机的价格为:',p.price)print('手机的颜色是:',p.color)print('手机的操作系统是:',p.os)print('===========================')#也可以用类来访问属性print('手机的品牌是:',Phone.brand_name)print('手机的价格为:',Phone.price)print('手机的颜色是:',Phone.color)print('手机的操作系统是:',Phone.os)#类的方法调用,通过对象.方法名()p.call()p.massage()p.music()p.watchTV()print('=======================')#对象的值和self的值是一样的,所以self就是对象自己print('对象的值是:',p)p.call()#静态方法可以用类和对象来调用Phone.massage()p.massage()#类方法可以用类和对象来调用Phone.watchTV()p.watchTV()

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档