首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将库存储为对象的属性是一种很好的软件工程实践吗?

将库存储为对象的属性是一种很好的软件工程实践吗?
EN

Software Engineering用户
提问于 2020-02-27 06:37:14
回答 1查看 116关注 0票数 2

假设我在python对象中初始化了一个库-

代码语言:javascript
复制
#filename: file_A
import file_
class A():
    def __init__(self):
        self.pd = file_.pd
        self.np = file_.np

假设file_的内容是,

代码语言:javascript
复制
#filename: file_
import pandas as pd
import numpy as np

您可能想知道将这些库作为对象包含在其中有什么意义,因为import file_无论如何都会包含pd & np的命名空间,但是包含这些库的原因是为了使这些库可以用于子类,如下所示。

代码语言:javascript
复制
#filename: file_B
from file_A import A
Class B(A):
    # Getting all the libraries without even importing them again. 

我担心的是这一战略的影响。这样做是否更好呢?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2020-02-27 08:20:19

模块是Python中的对象,可以将对象分配给变量。从本质上讲,它没有什么好的,也没有坏的。如果它解决了你的问题,那么它很可能是好的,如果它引起了你关心的问题,那么它可能是坏的。

我所做的唯一不同的事情就是将导入移到类中:

代码语言:javascript
复制
class A(object):
    from file_ import *

代码语言:javascript
复制
class A(object):
    import pandas as pd
    import numpy as np

这更简单,并且更清楚地表明,您确实打算将这些导入类命名空间。在__init__中分配变量有一个缺点,如果它们覆盖__init__,那么子类必须记住调用D4)。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/405814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档