《Python编程:从入门到实践》第9章学习笔记

创建类

1. 方法 __init__()
  • 类中的函数成为方法
  • 需要理解调用方法的方式。
  • __init__()是一个特殊的方法,每次调用类中创建新实例,python会自动运行它。
  • 名称中开头结尾各有两个下划线,是一种确定,避免python默认方法与普通方法发生冲突。
  • __init__()定义包含三个形参:selfnameage(具体实例请参考书籍《Python编程:从入门到实践》)。
    • 其中self必须位于其他形参之前。
    • 调用__init__()方法来创建实例,将自动传入实参self,指向实例本身的引用,让实例能够访问类中的属性和方法
  • 通过实例访问的变量称为属性
  • 注意:__init__()两边各有 2个下划线
9-1练习问题记录
  1. class xxx(): 括号中为空。
  2. def __init__(self,aaa,bbb):需要补充self和其他形参。
  3. def xxx(self)
    3.1.其他函数设置时,括号需要补充self
    3.2.函数调用时需要写:self.aaaself.bbb

使用类

2.给属性指定默认值
  • 类中的每个属性都必须有初始值,可以是0空字符串
  • 如果在方法 __init__()内指定初始值,就不用包含为它提供初始值的形参。
3.修改属性的值
  • 3种不同的方法修改属性的值
    3.1直接修改属性的值
    3.2通过方法进行设置
    3.3通过方法进行递增(增加特定的值)

继承

  • 一个类继承另一个类时,自动获取另一个类所有的属性和方法,还可以定义自己的属性和方法。
  • 原有的类称为父类,新类称为子类
4.子类的方法 __init__()
  • 定义子类时,必须在括号内指定父类的名称。
  • super()子类调用所有子类的方法__init__()super().__init__()
  • 父类也称超类(superclass)
5.给子类定义属性和方法
  • 同上 1. 方法 __init__()
6.重写父类的方法
  • 父类的方法不符合子类的行为描述,可以在子类定义一个方法要和父类方法同名,就会只关注子类中定义的相应方法。
# 9-7 管理员(部分为自创内容,不完全符合题目要求)
class User():
    def __init__(self,first_n,last_n):
        self.first_n = first_n
        self.last_n = last_n
        self.log_att = 0
    def des_user(self):
        print("first: "+self.first_n+","+" last: "+self.last_n)
    def greet_user(self):
        print(self.first_n+" "+self.last_n+" : good day.")
    def incre_log_att(self,nums):        
        self.log_att = nums+1
        print(str(self.log_att))
    def reset_log_att(self):
        self.log_att = 0
        print(str(self.log_att))

class Admin(User):
    def __init__(self,first_n,last_n):
        super().__init__(first_n,last_n)
        self.privileges = ["can add post","can delete post","can ban user"]
    def show_privileges(self):
        for ps in self.privileges:
            print("你的执行权限 "+ps)
user = Admin("nihao","wohao")
user.des_user()
user.show_privileges()
以上为今天学习的内容。
今日学习反思(2020-03-06)
  1. 代码操作不熟练,脱离案例就会忘记使用方法。
  2. 课后习题写作不熟练,需要对照案例才会写。
  3. 代码自己敲了2遍,明天重新复习2遍,要默写。
  4. for x in xx 循环输出不熟练。
  5. 遇到列表,字符串不熟练。
  6. 学习时间约为3小时,未完成9.4-9.7,如果以后需要用到再学习。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值