\u53cc\u5c42\u88c5\u9970\u5668<\/strong><\/p> \n \u8fd8\u662f\u8001\u6837\uff0c\u6ca1\u6709\u6539\u53d8\uff1a<\/p> \n \u8f93\u51fa\uff1a<\/p> \n <\/p> \n \u65b0\u53d8\u5316\uff1a<\/p> \n USER_INFO = {}\n\n\n<\/span>def<\/span> check_login(func):\n <\/span>def<\/span> inner(*args, **kwargs):\n <\/span>if<\/span> USER_INFO.get("<\/span>is_login<\/span>"<\/span>, None):\n <\/span>#<\/span> \u7528get\u65b9\u6cd5\u62ff\u5b57\u5178\u91cc\u9762\u7684\u5185\u5bb9\uff0c\u5982\u679c\u5b57\u5178\u91cc\u9762\u6ca1\u6709\u6211\u4eec\u8981\u62ff\u7684\u53c2\u6570\uff0c\u4e0d\u4f1a\u62a5\u9519\uff0c\u7ed9\u4ed6\u9ed8\u8ba4\u8fd4\u56de\u7684\u4e3aNone<\/span>\n ret = func(*args, **kwargs)\n <\/span>return<\/span> ret\n <\/span>else<\/span>:\n <\/span>print<\/span>("<\/span>\u8bf7\u767b\u5f55<\/span>"<\/span>)\n\n <\/span>return<\/span> inner\n\n\n<\/span>def<\/span> check_admin(func): #<\/span> \u5224\u65ad\u662f\u5426\u4e3a\u7ba1\u7406\u5458\u7528\u6237<\/span>\n def<\/span> inner(*args, **kwargs):\n <\/span>if<\/span> USER_INFO.get("<\/span>is_login<\/span>"<\/span>, None):\n <\/span>if<\/span> USER_INFO.get("<\/span>user_type<\/span>"<\/span>, None) == 2: #<\/span> \u5982\u679c\u7528\u6237\u7c7b\u578b\u7b49\u4e8e2\uff0c\u8868\u793a\u4e3a\u7ba1\u7406\u5458\u7528\u6237<\/span>\n ret = func(*args, **kwargs)\n <\/span>return<\/span> ret\n <\/span>else<\/span>:\n <\/span>print<\/span>("<\/span>\u65e0\u6743\u9650\u67e5\u770b<\/span>"<\/span>) #<\/span> \u5426\u8005\u65e0\u6743\u9650\u67e5\u770b<\/span>\n else<\/span>:\n <\/span>print<\/span>("<\/span>\u8bf7\u767b\u5f55<\/span>"<\/span>)\n\n <\/span>return<\/span> inner\n\n\n@check_admin\n<\/span>def<\/span> index(): #<\/span> \u8d85\u7ea7\u7ba1\u7406\u5458\u53ef\u4ee5\u67e5\u770b<\/span>\n print<\/span>("<\/span>index<\/span>"<\/span>)\n\n\n@check_login\n<\/span>def<\/span> home(): #<\/span> \u767b\u5f55\u53ef\u4ee5\u67e5\u770b<\/span>\n """<\/span>\n \u666e\u901a\u7528\u6237\u7684\u529f\u80fd\n :return:\n <\/span>"""<\/span>\n print<\/span>("<\/span>home<\/span>"<\/span>)\n\n\n<\/span>def<\/span> login(): #<\/span> \u767b\u5f55<\/span>\n user = input("<\/span>\u8bf7\u8f93\u5165\u7528\u6237\u540d\uff1a<\/span>"<\/span>)\n <\/span>if<\/span> user == "<\/span>admin<\/span>"<\/span>:\n USER_INFO[<\/span>"<\/span>is_login<\/span>"<\/span>] = True\n USER_INFO[<\/span>"<\/span>user_type<\/span>"<\/span>] = 2\n else<\/span>: #<\/span> \u5426\u8005\u5982\u679c\u4e0d\u4e3aadmin\uff0c\u8868\u793a\u767b\u5f55\u7684\u7528\u6237\u4e3a\u666e\u901a\u7528\u6237<\/span>\n USER_INFO["<\/span>is_login<\/span>"<\/span>] = True\n USER_INFO[<\/span>"<\/span>is_login<\/span>"<\/span>] = 1\n\n\ndef<\/span> main():\n <\/span>while<\/span> True:\n inp <\/span>= input("<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\\n>>><\/span>"<\/span>)\n <\/span>if<\/span> inp == "<\/span>1<\/span>"<\/span>:\n login()\n <\/span>elif<\/span> inp == "<\/span>2<\/span>"<\/span>:\n home()\n <\/span>elif<\/span> inp == "<\/span>3<\/span>"<\/span>:\n index()\n\n\nmain()<\/span><\/pre> \n <\/div> \n v1<\/span>\n <\/div> \n
1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>>2\n\u8bf7\u767b\u5f55\n<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>>3\n\u8bf7\u767b\u5f55\n<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>>1\n\u8bf7\u8f93\u5165\u7528\u6237\u540d\uff1auser\n<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>>2\nhome\n<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>>3\n\u65e0\u6743\u9650\u67e5\u770b\n<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>>1\n\u8bf7\u8f93\u5165\u7528\u6237\u540d\uff1aadmin\n<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>>2\nhome\n<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>>3\nindex\n<\/span>1\u3001\u767b\u5f55\uff1b2\u3001\u67e5\u770b\u4fe1\u606f\uff1b3\u8d85\u7ea7\u7ba1\u7406\u5458\n<\/span>>>><\/pre> \n <\/div> \n v1\u7684\u8f93\u51fa<\/span>\n <\/div> \n
#<\/span> \u4ece\u7248\u672c\u4ee5\u4e00\u4e2d\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u5f88\u591a\u6211\u4eec\u7684check_admin\u91cc\u9762\u91cd\u590d\u4e86check_login\u7684\u4ee3\u7801\uff08check_admin\u53c8\u5224\u65ad\u767b\u5f55\uff0c\u53c8\u5224\u65ad\u6743\u9650\uff09\uff0c<\/span>\n#<\/span> \u5982\u679c\u6211\u4eec\u53c8\u52a0\u4e0a\u4e86\u8d85\u7ea7\u7ba1\u7406\u5458\uff0c\u90a3\u6211\u4eec\u5c31\u4f1a\u53c8\u5199\u4e00\u4e2a\u91cd\u590d\u7684\u88c5\u9970\u5668\uff0c<\/span>\n#<\/span> \u6240\u4ee5\u6211\u4eec\u9700\u8981\u7528\u5230\u53cc\u5c42\u88c5\u9970\u5668\uff0c\u5148\u7528check_login\uff0c\u5224\u65ad\u662f\u5426\u767b\u5f55\uff0c\u7136\u540e\u7528check_admin\u5224\u65ad\u662f\u5426\u4e3a\u7ba1\u7406\u5458<\/span>\nUSER_INFO = {}\n\n\n<\/span>def<\/span> check_login(func):\n <\/span>def<\/span> inner(*args, **kwargs):\n <\/span>if<\/span> USER_INFO.get("<\/span>is_login<\/span>"<\/span>, None):\n <\/span>#<\/span> \u7528get\u65b9\u6cd5\u62ff\u5b57\u5178\u91cc\u9762\u7684\u5185\u5bb9\uff0c\u5982\u679c\u5b57\u5178\u91cc\u9762\u6ca1\u6709\u6211\u4eec\u8981\u62ff\u7684\u53c2\u6570\uff0c\u4e0d\u4f1a\u62a5\u9519\uff0c\u7ed9\u4ed6\u9ed8\u8ba4\u8fd4\u56de\u7684\u4e3aNone<\/span>\n ret = func(*args, **kwargs)\n <\/span>return<\/span> ret\n <\/span>else<\/span>:\n <\/span>print<\/span>("<\/span>\u8bf7\u767b\u5f55<\/span>"<\/span>)\n\n <\/span>return<\/span> inner\n\n\n<\/span>def<\/span> check_admin(func): #<\/span> \u5224\u65ad\u662f\u5426\u4e3a\u7ba1\u7406\u5458\u7528\u6237<\/span>\n def<\/span> inner(*args, **kwargs):\n <\/span>if<\/span> USER_INFO.get("<\/span>user_type<\/span>"<\/span>, None) == 2: #<\/span> \u5982\u679c\u7528\u6237\u7c7b\u578b\u7b49\u4e8e2\uff0c\u8868\u793a\u4e3a\u7ba1\u7406\u5458\u7528\u6237<\/span>\n ret = func(*args, **kwargs)\n <\/span>return<\/span> ret\n <\/span>else<\/span>:\n <\/span>print<\/span>("<\/span>\u65e0\u6743\u9650\u67e5\u770b<\/span>"<\/span>) #<\/span> \u5426\u8005\u65e0\u6743\u9650\u67e5\u770b<\/span>\n\n return<\/span> inner\n\n\n<\/span>#<\/span> \u4e3a\u4ec0\u4e48check_login\u5199\u4e0a\u9762\uff0c\u6211\u4eec\u4ece\u4e0b\u5411\u4e0a\u770b\uff0c\u4eceindex()\u5f00\u59cb\uff0c<\/span>\n#<\/span> \u53ef\u4ee5\u770b\u5230\u5148\u7528admin\u88c5\u9970\u540e\uff0c\u6bd4\u5982\u53d8\u6210\u4e86nindex\u8fd9\u4e2a\u51fd\u6570\uff0c\u7136\u540e\u518d\u7528login\u88c5\u9970\u8fdb\u884c\u88c5\u9970\uff0c\u6bd4\u5982\u53c8\u53d8\u6210\u4e86nnindex\uff0c\u7136\u540epython<\/a>\u662f\u4ece\u4e0a\u5411\u4e0b\u6267\u884c\uff0c<\/span>\n#<\/span> \u6240\u4ee5python<\/a>\u4f1a\u6267\u884cnnindex\uff0c\u5224\u65ad\u662f\u5426\u767b\u5f55\uff0c\u7136\u540e\u5728\u6267\u884cnindex\uff0c\u5224\u65ad\u662f\u5426\u4e3a\u7ba1\u7406\u5458\uff0c\u5982\u679c\u6ca1\u6709\u767b\u5f55\uff0c<\/span>\n#<\/span> \u63d0\u793a\u767b\u5f55\uff0c\u5982\u679c\u5df2\u7ecf\u767b\u5f55\uff08\u4e0d\u4e3a\u7ba1\u7406\u5458\uff09\uff0c\u63d0\u793a\u65e0\u6743\u9650<\/span>\n@check_login\n@check_admin\n<\/span>def<\/span> index(): #<\/span> \u7ba1\u7406\u5458\u53ef\u4ee5\u67e5\u770b<\/span>\n """<\/span>\n \u7ba1\u7406\u5458\u7684\u529f\u80fd\n :return:\n <\/span>"""<\/span>\n print<\/span>("<\/span>index<\/span>"<\/span>)\n\n\n@check_login\n<\/span>def<\/span> home(): #<\/span> \u767b\u5f55\u53ef\u4ee5\u67e5\u770b<\/span>\n """<\/span>\n \u666e\u901a\u7528\u6237\u7684\u529f\u80fd\n :return:\n <\/span>"""<\/span>\n print<\/span>("<\/span>home<\/span>"<\/span>)\n\n\n<\/span>def<\/span> login(): #<\/span> \u767b\u5f55<\/span>\n user = input("<\/span>\u8bf7\u8f93\u5165\u7528\u6237\u540d\uff1a<\/span>"<\/span>