题解 | #班级管理#

班级管理

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 代表类的实例,是通过类创建的实例 (注意,在定义类时这个实例我们还没有创建,它表示的我们使用类时创建的那个实例)
# 实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。实例属性访问优先级比类属性高,所以我们访问时优先访问实例属性,
# 它将屏蔽掉对类属性的访问。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 18:05
哈哈哈哈哈感觉朋友找工作的已经疯掉了,直接上图
码农索隆:真老板娘:“我嘞个去,这不我当年的套路吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务