human
I am working on the file "Python 基础课程/draft/python_basic_2/Python - 面向对象编程 01.ipynb".
The first task is:
再来看看 show_properties() 这个方法，总感觉这样有点笨重，因为不管是否是面向对象的编程方式，都不应该有太多重复的代码，现在 NPC 类中也有 show_properties() 方法，用来显示标准的三个属性，而 Soldier 类中同样名字的方法显示四个属性，如果 NPC 类中增加了属性，那么两边类中的这个方法都要修改。
我们来看看有没有更好的办法，可以用 super(需要知道父类的类，self) 的方法来访问父类的方法，这样代码就简洁优雅了。
Can you write Python program for it?

=====
Give me a the Python program you requested?
assistant
#Here is the Python program you requested.

# 战士 Soldier 类
class Soldier(NPC):
    
    # 建立 soldier 的初始化
    def __init__(self, name):
        # 调用 父类 NPC 的初始化方法
        NPC.__init__(self, name)
        
        # soldier 自己的初始化
        self.soldier_level = 1
        
    # 定义方法 - 显示 NPC 属性
    def show_properties(self):
        # 通过 super 来调用父类方法
        super(Soldier, self).show_properties()
        print('soldier_level', self.soldier_level)

# 创建一个 Soldier 类， 作为 NPC 的子类
n1 = Soldier('AA2')
n1.show_properties()
n1.fight_common()