python(8)

本文通过示例详细介绍了如何定义一个类,包括类变量、对象变量、打印方法、字符串表示及对象相加。同时,展示了super关键字在多继承场景下的使用,解释了如何通过super调用不同类中的print_info和say_something方法。
摘要由CSDN通过智能技术生成
"""
1.定义一个类(不限定定义哪个类):
  要求: a.需要有一个类变量
        b.需要有>=2个的对象变量
  c.定义一个方法:打印类变量和对象变量
  d.使用print打印对象->输出为This is a object
  e.实例化两个对象:且两个对象相加等于2
  f.为对象添加一个临时变量temp_var
"""
class Person:
    class_type = "Person Class"
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def print_info(self):
        print("类变量:", Person.class_type)
        print("对象变量:", self.name, self.age)

    def __str__(self):
        return "This is a object"

    def __add__(self, other):
        return 2
zhangsan = Person("zhangsan", 18)
print(zhangsan.print_info())
lisi = Person("lisi", 20)
print(zhangsan + lisi)
# 产生了一个对象的临时变量 class_type
zhangsan.class_type = "temp variable"
print(zhangsan.class_type)
print(lisi.class_type)

运行结果:
在这里插入图片描述

"""
2.super的使用:
 定义一个类A, 里面又一个方法print_info
 定义一个类B, 里边有一个方法print_info和一个方法say_something
 定义一个类C, 里边有一个方法say_something
 定义一个类D, 里边有一个方法print_info和一个方法say_something
 定义一个类E,继承类A, 类B, 类C,类D
 实例化类E的对象
 执行print_info和say_something方法
 利用super,让执行print_info时调用B中print_info
 利用super, 让执行say_something时调用C中say_something
 利用super, 让执行print_info和say_something时调用
     D中print_info和say_something
"""
class A:
    def print_info(self):
        print("This is A")
class B:
    def print_info(self):
        print("This is B")
    def say_something(self):
        print("B says something")
class C:
    def say_something(self):
        print("C says something")
class D:
    def print_info(self):
        print("This is D")
    def say_something(self):
        print("D says something")
class E(A, B, C, D):
    pass
print(E.__mro__)
# <class '__main__.E'>,
# <class '__main__.A'>,
# <class '__main__.B'>,
# <class '__main__.C'>,
# <class '__main__.D'>,
# <class 'object'>)
obj = E()
obj.print_info()
obj.say_something()

运行结果:
请添加图片描述

#  利用super,让执行print_info时调用B中print_info
class E(A, B, C, D):
    def print_info(self):
        super(A, self).print_info()
obj = E()
obj.print_info()

运行结果:
在这里插入图片描述

# 利用super, 让执行say_something时调用C中say_something
class E(A, B, C, D):
    def say_something(self):
        super(B, self).say_something()
obj = E()
obj.say_something()

运行结果:
请添加图片描述

#  利用super, 让执行print_info和say_something时调用D中print_info和say_something
class E(A, B, C, D):
    def print_info(self):
        super(C, self).print_info()
    def say_something(self):
        super(C, self).say_something()
obj = E()
obj.print_info()
obj.say_something()

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值