题解 | #班级管理#
班级管理
https://www.nowcoder.com/practice/e5539db11767449ab2fb68ed3c2446d0
from os import name class Student(object): def __init__(self,name,number,grade, level): self.name = name self.number = number self.grade = grade self.level = level self.times = len(level.split(' ')) def p(self): return "{}'s student number is {}, and his grade is {}. He submitted {} assignments, each with a grade of {}".format(self.name,self.number,self.grade,self.times,self.level,) name = input() number=input() grade=int(input()) level=input() student = Student(name,number,grade,level) print(student.p()) # https://zhuanlan.zhihu.com/p/30024792 类属性 # class Circle(object): # 创建Circle类,Circle为类名 # pass # 此处可添加属性和方法 # 在定义 Circle 类时,可以为 Circle 类添加一个特殊的 __init__() 方法,当创建实例时,__init__() 方法被自动调用为创建的实例增加实例属性。 # class Circle(object): # 创建Circle类 # def __init__(self, r): # 初始化一个属性r(不要忘记self参数,他是类下面所有方法必须的参数) # self.r = r # 表示给我们将要创建的实例赋予属性r赋值 # 注意:__init__() 方法的第一个参数必须是 self(self代表类的实例,可以用别的名字,但建议使用约定成俗的self),后续参数则可以自由指定, # 和定义函数没有任何区别。 # circle1 = Circle(1) # 创建实例时直接给定实例属性,self不算在内 # circle2 = Circle(2) # print(circle1.r) # 实例名.属性名 访问属性 # print(circle2.r) # 我们调用实例属性的名称就统一了 # 注意:实例名.属性名 circle1.r 访问属性,是我们上面Circle类__init__() 方法中 self.r 的 r 这个实例属性名, # 而不是__init__(self, r)方法中的 r 参数名,如下更加容易理解: # class Circle(object): # 创建Circle类 # def __init__(self, R): # 约定成俗这里应该使用r,它与self.r中的r同名 # self.r = R # circle1 = Circle(1) # print(circle1.r) #我们访问的是小写r # 面试喜欢问的问题:创建类时,类方法中的self是什么? # self 代表类的实例,是通过类创建的实例 (注意,在定义类时这个实例我们还没有创建,它表示的我们使用类时创建的那个实例) # 实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。实例属性访问优先级比类属性高,所以我们访问时优先访问实例属性, # 它将屏蔽掉对类属性的访问。