【Python基础编程231 ● 面向对象 ● 类方法】


 ---------Python基础编程---------

Author : AI菌


 

【内容讲解】  

一、定义类方法:
1.在方法定义的那一行的上面,使用@classmethod装饰器
这个装饰器的作用:
1)用来表示下面的方法是一个类方法的
2)在调用类方法时,python解释器会自动把类名传递cls
2.第一个形参必须是cls,表示类对象,就是那个类名

二、访问方式:
1.实例对象.类方法名(实参1,实参2,...)
2.类对象.类方法名(实参1,实参2,...)(推荐的方式)

三、特点:
1.在调用类方法时,python解释器会自动把类对象传递给cls
2.只能访问类属性或者类方法,不能访问实例属性或者实例方法

四、什么时候定义一个类方法?
在方法中只需要访问类属性或者类方法,不访问实例属性或者实例方法.

 

【代码演示】

"""
  一、定义类方法:
       1.在方法定义的那一行的上面,使用@classmethod装饰器
         这个装饰器的作用:
               1)用来表示下面的方法是一个类方法的
               2)在调用类方法时,python解释器会自动把类名传递cls
       2.第一个形参必须是cls,表示类对象,就是那个类名

   二、访问方式:
       1.实例对象.类方法名(实参1,实参2,...)
       2.类对象.类方法名(实参1,实参2,...)(推荐的方式)
   
   三、特点:
       1.在调用类方法时,python解释器会自动把类对象传递给cls
       2.只能访问类属性或者类方法,不能访问实例属性或者实例方法

   四、什么时候定义一个类方法?
       在方法中只需要访问类属性或者类方法,不访问实例属性或者实例方法.
   """


class Student:
    __conditioner = "格力空调"

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    @classmethod
    def study(cls):
        # 访问类方法
        cls.show()
        # 访问类属性
        print(cls.__conditioner)

    @classmethod
    def show(cls):
        print("我是类方法...")


# 1.实例对象.类方法名(实参1,实参2,...)
s = Student("rabbit", 18, "")
s.study()
# 2.类对象.类方法名(实参1,实参2,...)
Student.study()

 

【往期精彩】

▷【Python基础编程196 ● 读取文件的4种方式】
▷【Python基础编程197 ● 读取文件的4种方式】
▷【Python基础编程198 ● 读取文件的4种方式】
▷【Python基础编程199 ● Python怎么读/写很大的文件】
▷【Python基础编程200 ● 读取文件的4种方式】
▷【Python基础编程201 ● 读取文件的4种方式】
▷【Python基础编程202 ● 读取文件的4种方式】
▷【Python基础编程203 ● 读取文件的4种方式】

 

【加群交流】



posted @ 2020-08-03 14:56  AI菌  阅读(230)  评论(0编辑  收藏  举报