首页 > 编程语言 > 详细

Python基础之十一(类的方法和特性)

时间:2021-07-18 23:32:49      阅读:24      评论:0      收藏:0      [点我收藏+]

一、类的方法

(1)实例方法(方法也称函数)【常用】

定义:在类里面,需要对类进行实例化之后才能调用的方法,默认传参实例本身,没有修饰符

语法:

  def 方法名(self):

    方法体

调用:

  在类外部:实例.方法名()

  在类内部:self.方法名()

例子:

技术分享图片
class Dog:
    # 实例方法
    def eat(self):
        print(狗狗吃饭)

    # 实例方法
    def sleep(self):
        self.eat()  # 在类内部调用eat实例方法
        print(狗狗睡觉)


if __name__ == __main__:
    dog = Dog()  # 实例化
    dog.sleep()
    dog.eat()  # 在类外部实例化后调用
View Code

  输出结果:    

    狗狗吃饭
    狗狗睡觉
    狗狗吃饭 

(2)类方法

定义:在类里面,无需对类进行实例化便可调用的方法,默认传参类本身,有修饰符@classmethod

语法:

  @classmethod

  def 方法名(cls):

    方法体

调用:

  在类外部:类.方法名()  或  实例.方法名()

  在类内部:self.方法名()

例子:

技术分享图片
class Dog:
    # 类方法
    @classmethod
    def eat(cls):
        print(狗狗吃饭)

    # 实例方法
    def sleep(self):
        self.eat()  # 在类内部调用eat类方法
        print(狗狗睡觉)


if __name__ == __main__:
    Dog.eat()  # 类调用类方法
    dog = Dog()
    dog.eat()  # 实例调用类方法
    dog.sleep()
View Code

  输出结果:    

    狗狗吃饭
    狗狗吃饭
    狗狗吃饭
    狗狗睡觉

(3)静态方法

定义:在类里面,无需对类进行实例化便可调用的方法,且无需传参便可调用,有修饰符@staticmethod

语法:

  @staticmethod

  def 方法名():

    方法体

调用:

  在类外部:类.方法名()  或  实例.方法名()

  在类内部:self.方法名()

例子:

技术分享图片
class Dog:
    # 静态方法
    @staticmethod
    def eat():
        print(狗狗吃饭)

    # 实例方法
    def sleep(self):
        self.eat()  # 在类内部用实例本身调用eat静态方法
        print(狗狗睡觉)


if __name__ == __main__:
    Dog.eat()  # 在类外部用类本身调用静态方法
    dog = Dog()
    dog.eat()  # 在类外部用实例调用静态方法
    dog.sleep()
View Code

  输出结果:

    狗狗吃饭
    狗狗吃饭
    狗狗吃饭
    狗狗睡觉 

注:静态方法和类方法相似,不同点在于静态方法默认无需传参,类方法默认传参类本身。另外,静态方法没有用到类的属性和其它方法,所以,静态方法和当前类的相关性很低,某些情况下可以作为独立的函数独立出来。

(4)私有方法

定义:在类里面,仅类内部可进行调用,类外部无法访问,传参实例本身,无修饰符

语法:

  def __方法名():  # 注意方法名前面是两条下划线

    方法体

调用:

  在类内部:self.__方法名()

例子:

技术分享图片
class Test:
    def __init__(self, num1, num2):
        self.num1 = num1
        self.num2 = num2

    def __test01(self):
        return self.num1 + self.num2

    def __test02(self):
        return self.num1 * self.num2

    def test03(self):
        print(相加的结果是:, self.__test01())
        print(相乘的结果是:, self.__test02())


if __name__ == __main__:
    test = Test(3, 5)
View Code

  输出结果:

    相加的结果是: 8
    相乘的结果是: 15

使用场景:私有方法一般作为实例方法的辅助作用,不对外展示。

二、类的特性

(1)封装

定义:隐藏功能实现的内部细节,对外仅提供接口,传递必要的参数即可实现想要的结果,就称为封装。例如函数、类等都是封装的一种,生活中的封装如取款机、计算器等也是封装。

(2)继承

定义:子类继承父类,子类无需重新定义父类的属性和方法便拥有了父类的属性和方法(私有属性和私有方法除外),这就是继承。

语法:

  class Father:

    父类属性和方法

  class Son(Father):

    pass

例子:

技术分享图片
class Father:
    money = 100万
    __myself = 衣服

    def drive(self):
        print(我会开车)

    def __fly_a_plane(self):
        print(我会开飞机)


class Son(Father):  # Son类继承了Father类的money属性和drive方法,私有属性__myself和私有方法__fly_a_plane无法继承
    pass


if __name__ == __main__:
    son = Son()
    print(f我有{son.money})  # 可以访问父类的money属性
    son.drive()  # 可以调用父类的drive方法
View Code

  输出:

    我有100万
    我会开车

(3)多态【了解,在Python中多态不严谨】

Python基础之十一(类的方法和特性)

原文:https://www.cnblogs.com/abing01/p/15027627.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!