类
创建类
1. 方法 __init__()
- 类中的函数成为
方法
。 - 需要理解调用方法的方式。
__init__()
是一个特殊的方法,每次调用类中创建新实例,python会自动运行它。- 名称中开头结尾各有两个下划线,是一种确定,避免python默认方法与普通方法发生冲突。
__init__()
定义包含三个形参:self
、name
、age
(具体实例请参考书籍《Python编程:从入门到实践》)。
- 其中self必须位于其他形参之前。
- 调用
__init__()
方法来创建实例,将自动传入实参self
,指向实例本身的引用,让实例能够访问类中的属性和方法。
- 通过实例访问的变量称为
属性
。 - 注意:
__init__()
两边各有 2
个下划线
9-1练习问题记录
class xxx()
: 括号中为空。def __init__(self,aaa,bbb)
:需要补充self
和其他形参。def xxx(self)
:
3.1.其他函数设置时,括号需要补充self
。
3.2.函数调用时需要写:self.aaa
,self.bbb
。
使用类
2.给属性指定默认值
- 类中的每个属性都必须有初始值,可以是
0
或空字符串
。 - 如果在方法
__init__()
内指定初始值,就不用包含为它提供初始值的形参。
3.修改属性的值
- 3种不同的方法修改属性的值
3.1直接修改属性的值
3.2通过方法进行设置
3.3通过方法进行递增(增加特定的值)
继承
- 一个类继承另一个类时,自动获取另一个类所有的属性和方法,还可以定义自己的属性和方法。
- 原有的类称为
父类
,新类称为子类
。
4.子类的方法 __init__()
- 定义
子类
时,必须在括号内指定父类
的名称。 super()
让子类
调用所有子类
的方法__init__()
:super().__init__()
- 父类也称超类(superclass)
5.给子类定义属性和方法
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)
- 代码操作不熟练,脱离案例就会忘记使用方法。
- 课后习题写作不熟练,需要对照案例才会写。
- 代码自己敲了2遍,明天重新复习2遍,要默写。
- for x in xx 循环输出不熟练。
- 遇到列表,字符串不熟练。
- 学习时间约为3小时,未完成9.4-9.7,如果以后需要用到再学习。