我不熟悉其他语言,所以我也不知道他们是否也这样做(或类似)(并且很好奇)。
例如,我为什么要写:
from pylearn2.utils import serial
而不是
from pylearn2/utils import serial
???
答案 0 :(得分:4)
因为Python将包和模块视为对象,因此使用点符号来访问其“属性”。
有关包对象及其表示法的更多信息:
以下是导入Django包的一些证明:
>>> import django
>>> type(django)
<type 'module'>
>>> type(django.contrib.auth.models)
<type 'module'>
答案 1 :(得分:2)
绝大多数编程语言都使用点/句点来命名空间。我个人认识的唯一一个不是PHP。
VB:
Imports System.Text
Imports System.IO
Imports Microsoft.VisualBasic.ControlChars
C#:
using System;
using System.Web.Services.Description;
using System.Collections;
using System.Xml;
爪哇:
import javax.swing.*;
ActionScript 3:
import flash.display.Sprite;
import flash.display.Shape;
import flash.events.MouseEvent;
import flash.filters.DropShadowFilter;
PHP:
use PhpAmqpLib\Connection\AMQPConnection;
use PhpAmqpLib\Message\AMQPMessage;
答案 2 :(得分:1)
除了其他答案......
并非所有模块都以导入时定义的方式存在于文件系统中。 somepackage.somemodule碰巧在somepackage / somemodule.py上的磁盘上只是一种方法。例如,C扩展可能位于不同的位置或具有不同的名称。此外,一些模块喜欢使用其命名空间。 'os.path'可能真的是'ntpath'或'posixpath'。