分享一道 Python 面向对象基础题,欢迎新手都来学习下

2018-04-12 10:55:44 +08:00
 hippoboy
面向对象写一个用户类,实现用户注册登录登出。有一种特殊用户是管理员,除了正常的用户功能外,还可以让某个用户登出也就是踢出,手写代码试试?主要考察类操作,题目还是比较基础的。
4437 次点击
所在节点    Python
27 条回复
holajamc
2018-04-12 11:56:15 +08:00
<script src="https://gist.github.com/jamcplusplus/746c2e28855f1b0e6b0dfefdda1d5f77.js"></script>
我是萌新,求指导)
pmispig
2018-04-12 12:45:31 +08:00
这种纯业务的东西和 python 面向对象基础有什么关系?
KIDJourney
2018-04-12 13:05:56 +08:00
出这种题的面试官大概脑子有问题。
dobelee
2018-04-12 13:43:24 +08:00
看到 2 楼 3 楼我就放心了。大部分人脑子还是正常的。。
qsnow6
2018-04-12 13:48:55 +08:00
@holajamc registration 呢
shuizhengqi
2018-04-12 13:55:49 +08:00
知道你是遇到难题了,好了下一位
holajamc
2018-04-12 14:03:07 +08:00
@qsnow6 噗忘记了)
CSM
2018-04-12 14:04:18 +08:00
@holajamc script 标签很灵性
wizardforcel
2018-04-12 14:20:41 +08:00
@pmispig 当然有关系,管理员在业务系统里面是个字段,任何用继承来实现的人都是生搬硬套,得扣分。
binux
2018-04-12 14:24:31 +08:00
@wizardforcel 权限系统是怎么设计的还两说呢,你怎么就知道管理员就是个字段了?
dychenyi
2018-04-12 15:05:27 +08:00
从设计模式上来看,绝对需要继承,再来个超级管理员怎么办? 你还是字段?
这题也就考了个继承,设计几个 group 类,guest-普通用户-管理员-超管 就行了
bookding0
2018-04-12 15:51:17 +08:00
> 除了正常的用户功能外

看到这句我仿佛看见了之前某个产品经理的需求文档……
nullcc
2018-04-12 16:04:38 +08:00
真要搞这种功能请写在 service 层
yuhr123
2018-04-12 16:25:23 +08:00
让我们新手进来学习,分享的内容呢?
est
2018-04-12 16:31:19 +08:00
class User: def login(self):pass; def logout(self): pass

class Admin(User): def logout_other(self): pass


就这两行?
laqow
2018-04-12 16:52:55 +08:00
新手感觉只是实现的话感觉不同用户之间只是权限差异,全部从 user 生成对象,参数就是权限就可以了,用继承增加复杂性也难扩展新权限。服务用户端分离的话没必要把用户信息一直存在内存里,接口搞太多更没意义了。
lihongjie0209
2018-04-12 17:04:49 +08:00
剩下的自己填空吧, 不过想不通为什么要把这么多功能写到一个类里面


interface GodUserService{


@inject AuthorityService

@inject SessionService

@inject UserCURDService



}
dddd1919
2018-04-12 18:54:09 +08:00
新手来骗代码完成工作,鉴定完毕
cxyfreedom
2018-04-12 19:56:02 +08:00
真要区分权限,正常业务不都是数据库字段层面考虑的吗 [说错轻喷。考继承的话,不如用 Foo Bar 之类的代替考考吧。
crb912
2018-04-12 20:05:44 +08:00
用户类,初始化两个属性 ,
1.is_admin 是管理员,取 Ture,否则 false,
2.is_active,表明状态,登陆,即修改它为 True,登出改为 false

其它的,设置成方法。

说话,这种没脑子的题,有啥可学的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/446156

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX