本来打算用面向对象和反射来实现,结果,反射没用上,这个东西新接触~~不太会
kecheng_list = []
kecheng_list_1 = []
main_list = ["退出", "查看课程", "选课", "查看已选课程", "删除课程"]
class KeCheng(object):
def __init__(self, name):
"""
初始化课程
:param name: 课程名字
"""
self.name = name
@staticmethod
def show_all_class():
for i in range(len(kecheng_list)):
print(kecheng_list[i].name)
class Studednt(object):
def __init__(self, **kwargs):
"""
初始化学生
:param kwargs: name 必须传递,其余随意
"""
pass
self.x = kwargs
def search_kecheng(self):
for i, item in enumerate(kecheng_list_1, 1):
print(i, item)
your_choice = int(input("输入你要为%s选择的课程的编号:" % self.name))
self.kecheng = kecheng_list_1[your_choice - 1]
print(self.__dict__)
def run():
for i in range(1, 11):
kechengming = "kecheng%d" % i
kecheng_list_1.append(kechengming)
kechengming = KeCheng(kechengming)
kecheng_list.append(kechengming)
# 实例化一个学生
stu_name = input("请输入学生的姓名:")
stu_name = Studednt(name=stu_name, age=18)
for item in stu_name.x:
stu_name.__dict__[item] = stu_name.x[item]
stu_name.__dict__.pop("x")
# 主功能
while True:
print("功能菜单:")
for i, item in enumerate(main_list, 0):
print(i, item)
your_input = int(input("请输入操作序号:"))
if your_input == 0:
break
elif your_input == 1:
KeCheng.show_all_class()
elif your_input == 2:
stu_name.search_kecheng()
if __name__ == '__main__':
run()
引发了一些对*args,**kwargs的思考
来源:CSDN
作者:py小白hyg
链接:https://blog.csdn.net/qq_28197005/article/details/103546551