仅显式导入模块中的某些对象

时间:2016-03-09 22:44:49

标签: python

我想使用radians模块中的degreesnumpy函数。但是,numpyimport numpy as np 。巨大的,我不想进口整个东西,即:

from numpy import radians, degrees

我可以通常的方式做到这一点:

np.degrees

但是,由于其显式性,我更喜欢语法np

以下是我这样做的方式;基本上我从模块中导入了我想要的对象/函数,然后我创建了一个" dummy"用于存储导入的对象/函数的from numpy import radians, degrees np = type('', (object,), dict(radians = radians, degrees = degrees)) del degrees del radians 对象:

#ifndef Vector_3_H
#define Vector_3_H

#pragma once

namespace VectorMath {

class Vector3 {

public:

    Vector3(float x, float y, float z);

    Vector3 operator+(Vector3 vector);    
    Vector3 operator-(Vector3 vector);
    Vector3 operator*(Vector3 vector);
    Vector3 operator/(Vector3 vector);

    float getX();
    float getY();
    float getZ();

private:

    float x;
    float y;
    float z;

};

}

#endif

似乎必须有更好,更直接的方式来做到这一点。它是什么?

1 个答案:

答案 0 :(得分:3)

import numpy as np并不比from numpy import radians, degrees慢。两者都先评估整个模块;唯一的区别是之后添加到导入模块的全局命名空间的内容。 (如果有的话,第二个更慢,因为它会向命名空间添加两个项而不是一个。)

所以,只需使用import numpy as np,不要担心你没有使用的东西。