假设我在python对象中初始化了一个库-
#filename: file_A
import file_
class A():
def __init__(self):
self.pd = file_.pd
self.np = file_.np假设file_的内容是,
#filename: file_
import pandas as pd
import numpy as np您可能想知道将这些库作为对象包含在其中有什么意义,因为import file_无论如何都会包含pd & np的命名空间,但是包含这些库的原因是为了使这些库可以用于子类,如下所示。
#filename: file_B
from file_A import A
Class B(A):
# Getting all the libraries without even importing them again. 我担心的是这一战略的影响。这样做是否更好呢?
发布于 2020-02-27 08:20:19
模块是Python中的对象,可以将对象分配给变量。从本质上讲,它没有什么好的,也没有坏的。如果它解决了你的问题,那么它很可能是好的,如果它引起了你关心的问题,那么它可能是坏的。
我所做的唯一不同的事情就是将导入移到类中:
class A(object):
from file_ import *或
class A(object):
import pandas as pd
import numpy as np这更简单,并且更清楚地表明,您确实打算将这些导入类命名空间。在__init__中分配变量有一个缺点,如果它们覆盖__init__,那么子类必须记住调用D4)。
https://softwareengineering.stackexchange.com/questions/405814
复制相似问题