吾爱乐享
个人学习博客

python学习之类与对象的学习

python学习之类与对象的学习

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

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

类的用法:

class ClassName:

#类的申明信息

#类体

类的说明:

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

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

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

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

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

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

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

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

类的调用:

在类的外面:

类的属性的调用:

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

可以用类来访问属性

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

类的方法的调用:

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

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

在类的里面调用

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

# -*- 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.方法名()或类名.方法名()

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

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

# -*- 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也支持

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

# -*- 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()

案例:

# _*_ 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

赞(0) 打赏
未经允许不得转载:吾爱乐享 » python学习之类与对象的学习

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏