python import 和 from XX import * 的区别

我import了一个socket模块,运行的时候说是没有AF_INET这个族。于是把importsocket改成了fromsocketimport*于是就运行成功了。这两... 我import了一个socket模块,运行的时候说是没有AF_INET 这个族。 于是 把import socket改成了 from socket import * 于是就运行成功了。这两者有区别吗? 展开
 我来答
床前明月儿
高能答主

2019-12-16 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171940

向TA提问 私信TA
展开全部

一、作用不同

1、import: 可以修改模块对象的属性,无论属性是不是可变类型。

2、 from XX import * :只能修改模块对象的属性是可变类型的,不可变类型不能修改。

二、用法不同

1、import:import xx,以import time和创建的一个python类为例:调用time模块中的方法时,需要在前加上time.;而调用类中的方法时,也需要在前面加上实例名aa。

2、 from XX import * :使用这种方式,则可以直接调用。


三、特点不同

1、import:所有导入的类使用时需加上模块名的限定。

2、 from XX import * :所有导入的类不需要添加限定。


参考资料来源:百度百科-Import

参考资料来源:百度百科-Python

黄鼠狼奥利給
推荐于2019-10-02 · TA获得超过1690个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

Python导入模块的方法有两种:import module 和 from module import,区别是前者所有导入的东西使用时需加上模块名的限定,而后者不需要。

1、import datetime是引入整个datetime包,如果使用datetime包中的datetime类,需要加上模块名的限定。

如果不加模块名限定会出现错误:TypeError: 'module' object is not callable \ AttributeError: 'module' object has no attribute 'now'

2、from datetime import datetime是只引入datetime包里的datetime类,在使用时无需添加模块名的限定。

扩展资料:

python标准库:

Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库命名接口清晰、文档良好,很容易学习和使用。

Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能无所不包,覆盖科学计算、Web开发、数据库接口、图形系统多个领域,并且大多成熟而稳定。

第三方模块可以使用Python或者C语言编写。SWIG,SIP常用于将C语言编写的程序库转化为Python模块。Boost C++ Libraries包含了一组库,Boost.Python,使得以 Python 或 C++ 编写的程序能互相调用。

借助于拥有基于标准库的大量工具、能够使用低级语言如C和可以作为其他库接口的C++,Python已成为一种强大的应用于其他语言与工具之间的胶水语言。

参考资料:百度百科-python

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兔丞飞
高粉答主

推荐于2019-09-19 · 专注娱乐 专注娱乐 专注娱乐
兔丞飞
采纳数:25 获赞数:19893

向TA提问 私信TA
展开全部

1,import socket的话要用socket.AF_INET,因为AF_INET这个值在socket的名称空间下。from socket import*是把socket下的所有名字引入当前名称空间。

2,from A import B 把B引入当前文件C的命名空间中。假设B初始化值为0,把B引入C命名空间后,如果在A中又修改了B的值:B=1,这时在C中,会发现B的值还是0,没有变化。解决方法就是在文件C中使用import A, 然后使用A.B。

举个例子:

import datetime

print(datetime.datetime.now())

以上代码实现输出系统当前时间,是引入整个datetime包,然后再调用datetime这个类中的now()方法。 

以上代码实现功能也可以用以下代码实现:

from datetime import datetime

print(datetime.now())

这里是从datetime包中只导入datetime这个类,让后再调用datetime这个类中的now()方法实现同样的目的。

假如你嫌datetime这个包名称太长,想要给它取个别名,以后每次用到它的时候都用它的别名代替它,这时就需要用到import…as,例子如下:

import datetime as dt

print(dt.datetime.now())

以上代码完成呢个与之前同样的功能,输出系统当前时间。

扩展资料

在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。

单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
背锅侠丶李达康
2017-07-21 · TA获得超过1311个赞
知道大有可为答主
回答量:2706
采纳率:96%
帮助的人:721万
展开全部
最近在用codecademy学python,遇到一些题目错误,小小记录一下
如from math import sqrt是把sqrt作为本文件的方法导入进来了,使用的时候只需要直接调用sqrt。
而如果import是import math,那么调用的时候要采用math.sqrt的方式。
那么如果在自己的文件里定义了相同名字的函数怎么办呢,来实验一下
from math import sqrt def sqrt(n): return n print sqrt(13689) raw_input()运行py文件输出13689,所以自己定义了函数会自动屏蔽掉。
所以大量引用import math.*是个比较好的办法,from math import *就容易出错了,当然用到很少的函数且次数较多时上面这种办法会比较合适。
另外python不支持像java那样import math.sqrt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-04-22
展开全部
import socket的话
要用socket.AF_INET
因为AF_INET这个值在socket的名称空间下

from socket import*
是把socket下的所有名字引入当前名称空间
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式