当前位置:首页 » 编程语言 » pythonimport变量

pythonimport变量

发布时间: 2022-08-07 14:16:14

python import 后 变量怎么获取

因为site_url属于item.py的内部变量,应该 dir(item) 才能够看到site_url

⑵ python import失败怎么办

重新安装要import的包(路径要对)

可以直接放进site-package文件夹(如:D:Python34/Lib/site-package)
把包直接放进去
如果要import的不是包是.py文件
那就需要让你要import的文件和运行import的代码在同一路径

⑶ python 引用的模块名称是变量的时候怎么写呢

dy_mole_name="sys"
a=__import__(dy_mole_name)
fromaimportXXX

⑷ python如何通过变量import其他文件夹的py文件

在被import py文件的文件夹中建立一个空的__init__.py文件

⑸ python import 和 from import 到底什么区别

from molename import functionname
如上,molename即模块名,functionname即函数/变量名。
使用from import后该模块被导入的函数/变量都不需要加上前缀(如:mole.func()),可以直接写func()。而使用import时,会导入该模块所有内容,但是需要在函数/变量前加前缀。

⑹ Python变量

请复制如下代码,试一下:

x=99
defselector():
import__main__
print__main__.x
x=88
printx

selector()

⑺ python from import 和 import 区别

python中有两种导入模块的方式,一种是import xxx,另一种是from xxx import yyy,两者的区别在于,第一种仅仅导入一个模块,并且将该模块执行了一遍,if __main__ =="__main__"里面的没有执行。
同时,有在当前的命名空间中导入变量,需要通过xxx.yyy的方式使用导入模块中的变量、函数、类等;
第二种则将模块中的变量yyy导入了当前命名空间,因此使用时可以直接以yyy调用,使用这种导入方法时,需要注意当前的命名空间是否有重名的,from xxx import *这种方式尽量不要使用,因为这样就破坏了对命名空间的管理。

ps:使用from xxx import *时是不能导入以单下划线开头的保护属性和以双下划线开头的私有属性的

⑻ python如何引用其他模块中类的方法中的变量

没法实现。
原因:
你的tmp,只是class a中的一个函数fun内的临时变量
所以无法直接被外部调用。
并且只有fun函数执行时才存在,函数结束时,就不存在了。

关于变量的作用范围,你可以参考:
【整理】Python中变量的作用域(variable scope)

想要可以被调用,可以试试:
改为:

#A.py
Class a()
tmp='123'
def fun()
。。。。。。

然后再去:

import A
print A.tmp

注意:
此时,tmp就是class a中的全局变量了。

⑼ python import 路径问题 新手

以下为纯手打,下面给几个demos:


说明:

moles所在的目录在python里叫package, 下面是一个名为 IsDir的package(实际上就是一个目录), package下面有4个moles(A, B, C, D)和一个__init__.py文件,目录结构如下:

IsDir/
A.pyB.pyC.pyD.py__init__.py

大体来讲,有两种方法可以调用某目录下(包括递归目录)的moles.


一. __init__.py为空时


1.1以下为调用moleA的代码:

#!/usr/bin/envpython
fromIsDirimportA
A.say()

输出:

ThisismoleA!

1.2 如果想调用moleA,B,C,D呢?

方法1.

#!/usr/bin/envpython
fromIsDirimportA
fromIsDirimportB
fromIsDirimportC
fromIsDirimportD
A.say()
B.say()
C.say()
D.say()

方法2.

#!/usr/bin/envpython
importIsDir.A
importIsDir.B
importIsDir.C
importIsDir.D
fromIsDirimport*
A.say()
B.say()
C.say()
D.say()

错误示例1:

#!/usr/bin/envpython
importIsDir.A
A.say()

错误示例2:

#!/usr/bin/envpython
fromIsDirimport*
A.say()

错误的原因:

IsDir/目录下__init__.py为空时,直接importIsDir.A或者fromIsDirimport*是无效的.

从官方文档里可以看到,__init__.py 里没有__all__=[mole1,mole2,...]时,

fromIsDirimport* 只能保证IsDir被imported, 所以此时IsDir里的moles是无法被imported,
此时只有如我上面所写的代码所示才能正确执行,否则是错误的。官方解释为:importIsDir.A并无任何意义,只有接着执行fromIsDirimport*后,importIsDir.A语句里的moleA才会被定义,所以完整的调用因改为: 1. import IsDir.A 2. from IsDir import *。

二. __init__.py用all=[...]指定该package下可以被imported进去的mole


__init__.py里写入如下内容:

%catIsDir/__init__.py
__all__=["A","B"]

然后使用之:

#!/usr/bin/envpython
fromIsDirimport*
A.say()
B.say()

结果:

%pythontest.py
ThisismoleA!
ThisismoleB!

错误实例:

#!/usr/bin/envpython
fromIsDirimport*
C.say()

以上示例之所以错误,是因为C并没有在__all__=["A","B"]里制定,由此可见,packageIsDir下面的__init__.py里,__all__=[...]具有隔离moles的作用。


补充:

mole A, B, C,D里我分别只定义了一个method, 例如,以下为mole A的code:

%catIsDir/A.py
defsay():
print"ThisismoleA!"

后记:

谢谢这位同学,回答你的问题感觉很有收获,顺便又把python温习了一遍。回头把这些总结贴到我的blog上以上为手写,望采纳,共勉。


=============================================================


老子写了这么多居然采用了另一个简陋的答案,mlgb的,枉我熬夜给你答题。这种白痴楼主就不配在这里问问题。

热点内容
linux刻录iso 发布:2025-05-18 00:16:15 浏览:661
php动态参数 发布:2025-05-18 00:12:05 浏览:424
安卓应用上传 发布:2025-05-18 00:11:57 浏览:802
数对的算法 发布:2025-05-18 00:11:02 浏览:381
linuxwhile 发布:2025-05-18 00:10:08 浏览:143
xpftp外网 发布:2025-05-17 23:58:11 浏览:385
如何评价一个服务器的性能 发布:2025-05-17 23:40:53 浏览:270
淘宝客适合什么服务器 发布:2025-05-17 23:39:26 浏览:613
python循环文件 发布:2025-05-17 23:39:22 浏览:828
androidstudio更新 发布:2025-05-17 23:38:22 浏览:643