手机版
你好,游客 登录 注册
背景:
阅读新闻

Python语法基础之初始化函数和类的继承

[日期:2019-06-03] 来源:Linux社区  作者:Linux [字体: ]

初始化函数的意思是,当你创建一个实例的时候,这个函数就会被调用。

初始化函数的写法是固定的格式:中间是“init”,这个单词的中文意思是“初始化”,然后前后都要有【两个下划线】,然后__init__()的括号中,第一个参数一定要写上self,不然会报错。

类的继承格式为:class 新类(旧类),新类就可以继承旧类的所有类方法,并可以定制新的方法甚至覆盖旧类的方法。

Python中初始化init 参数第一个必须要加self

class Survey():
    # 收集调查问卷的答案
    def __init__(self, question):
        self.question = question
        self.response = []

    # 显示调查问卷的题目
    def show_question(self):
        print(self.question)

    # 存储问卷搜集的答案
    def store_response(self, new_response):
        self.response.append(new_response)

# 请定义实名调查问卷的新类 RealNameSurvey,继承自 Survey 类
class RealNameSurvey(Survey):
    def __init__(self, question):
        Survey.__init__(self, question)
        self.response = {}  # 由于籍贯地和名字挂钩,所以用构成为“键值对”的字典来存放。

    # 存储问卷搜集的答案(覆盖父类的类方法)
    def store_response(self, name, new_response):  # 除了 self,还需要两个参数。
        self.response[name] = new_response  # 键值对的新增

survey = RealNameSurvey('你的籍贯地是哪?')
survey.show_question()
while True:
    response = input('请回答问卷问题,按 q 键退出:')
    if response == 'q':
        break
    name = input('请输入回答者姓名:')
    survey.store_response(name, response)  # 调用类方法,将两次通过 input 的字符串存入字典。

# 输出测试
for name, value in survey.response.items():
    print(name + ':' + value)

Python语法基础之初始化函数和类的继承

class Person:
    def __init__(self, name):
        self.name = name
        print('大家注意了!')

    def show(self):
        print('一个叫“%s”的网站来了。' % self.name)

class Man(Person):
    def __init__(self):
        Person.__init__(self, name='www.linuxidc.com')

    def show(self):
        print('一个叫“%s”的网站来了。' % self.name)

    def leave(self):  # 子类定制新方法
        print('那个叫“%s”的网站欢迎你的到来。' % self.name)

author1 = Person('Linux公社')
author1.show()
author2 = Man()
author2.show()
author3 = Man()
author3.leave()

Python语法基础之初始化函数和类的继承

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-06/158959.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款