关于类和模块与导入的思考

相似性

从某个角度来讲,类和模块些许相似性。

你可以在模块中封装私有方法,都是import一个对象后调用其中方法。

在写一组接口时是应该封装成类还是模块?

ps:如果把两者看成对象来操作,模块可以实现类似类的很多功能,但不建议随意修改底层魔法方法。

区别

类的特性:继承特性,重载等

模块:类似类的单例

考虑是否是单例,是否需要重载继承。

如果是复杂的逻辑处理,还是使用类,继承,设计模式结合较为灵活。

如果是基本组件,单例,可使用模块,函数式,无状态。

注意:

对于模块中的对象,import和from import不同:

对于from a import var,实际是类似:var = a.var,如果var是传值而非引用类型的,则修改之不会影响另一个模块的值,如果是列表等则会

如果是import a,则使用a.var会影响a模块的var,无论var是字符串还是引用。

这导致如果reload,from import方式导入的将不会更新

 

转载于:https://www.cnblogs.com/willaty/p/8005496.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值