建议不要import *在Python中使用.
任何人都可以分享原因,以便我下次可以避免它吗?
我想知道该import陈述是如何运作的.
我问这个是因为我的imports项目中有以下内容:
import static com.googlecode.javacv.jna.highgui.cvCreateCameraCapture;
import static com.googlecode.javacv.jna.highgui.cvGrabFrame;
import static com.googlecode.javacv.jna.highgui.cvReleaseCapture;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.colorfulwolf.webcamapplet.gui.ImagePanel;
import com.googlecode.javacv.OpenCVFrameGrabber;
import com.googlecode.javacv.jna.cxcore.IplImage;
Run Code Online (Sandbox Code Playgroud)
我的项目中没有这些软件包,那么,这将如何导入?
如果我用我的所有类创建一个JAR文件,我的服务器将托管这个JAR文件,必须是免费的Internet访问才能获得这些文件package吗?
我有一些问题,我Applet有这些进口,我问这个问题,了解是否可以成为互联网规则.
<applet code="com.colorfulwolf.webcamapplet.WebcamApplet"
archive="http://san.redenetimoveis.com/teste.jar, http://san.redenetimoveis.com/core.jar, http://san.redenetimoveis.com/javacv.jar, http://san.redenetimoveis.com/javase.jar, http://san.redenetimoveis.com/jna.jar, http://san.redenetimoveis.com/customizer.jar, http://san.redenetimoveis.com/jmf.jar, http://san.redenetimoveis.com/mediaplayer.jar, http://san.redenetimoveis.com/multiplayer.jar, http://san.redenetimoveis.com/sound.jar"
height="550" width="550">
</applet>
Run Code Online (Sandbox Code Playgroud) 我使用PySide的Python-Qt绑定,我想绘制一个场景,其中包括一个矩形,矩形不完全可见,因为视图应该只显示矩形未完全包含的场景的一部分.
这是一个最小的例子:
from PySide.QtGui import *
app = QApplication([])
scene = QGraphicsScene()
scene.addRect(0, 0, 100, 100)
view = QGraphicsView(scene)
view.setSceneRect(-60, 20, 100, 100)
view.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)
我希望看到矩形的下半部分,而不是看到三角形的下半部分!

似乎没有考虑矩形的右下角.
三角形仅出现在特殊情况下(如示例中的特殊场景矩形),如果完整矩形可见则不会出现.
这是一个错误还是我做错了什么?可以修复吗?
我的系统:Windows 7上的Python 3.3 + PySide 1.2.2(64位)
如何设置模块导入,以便每个模块可以访问所有其他模块的对象?
我有一个中型Python应用程序,其中包含各种子目录中的模块文件.我创建sys.path了一些模块,使用这些模块将这些子目录附加到并导入一组模块import thisModule as tm.模块对象与该限定条件一起引用.然后我将该模块导入到其他模块中from moduleImports import *.代码现在很草率,并且有几个这些东西,通常是重复的.
首先,应用程序失败,因为未分配某些模块引用.在单元测试时运行相同的代码.
其次,我担心我会导致递归模块导入问题.导入moduleImports导入thisModule,导入moduleImports....
这样做的正确方法是什么?
文件夹结构:
<current dir>
main.py
packages <dir>
__init__.py
mod.py
Run Code Online (Sandbox Code Playgroud)
主要的py:
import packages
print packages.mod.hello()
Run Code Online (Sandbox Code Playgroud)
mod.py:
def hello():
return 'hello'
Run Code Online (Sandbox Code Playgroud)
__init__.py:
from packages import mod
Run Code Online (Sandbox Code Playgroud)
如果我跑main.py,我没有错误.但是,如果我编辑__init__.py到'from packages import *',我得到这个错误:AttributeError的:"模块"对象有没有属性"国防部"
我不是在问这个'print'命令如何工作.我可以使用其他'import'语法main.py使其工作.现在的问题是:我很好奇的是'from packages import mod'在__init__.py.如果我可以这样做,import mod当我替换import *,这意味着导入一切,为什么我会得到一个错误?
那么from packages import *内心真正意味着__init__.py什么呢?
有人可以帮忙吗?谢谢
我在编程方面很新,只是学习python.
我正在使用Komodo Edit 9.0来编写代码.所以,当我写"从数学导入sqrt"时,我可以毫无问题地使用"sqrt"函数.但是,如果我只写"导入数学",那么该模块的"sqrt"功能不起作用.这背后的原因是什么?我能以某种方式修复它吗?
在学习Django和Python的过程中.我无法理解这一点.
(示例注释:'helloworld'是我项目的名称.它有一个名为'app'的应用程序.)
from helloworld.views import * # <<-- this works
from helloworld import views # <<-- this doesn't work
from helloworld.app import views # <<-- but this works. why?
Run Code Online (Sandbox Code Playgroud)
似乎第2行和第3行实际上是相同的.为什么#2不起作用?
编辑 - 添加了两个文件的来源. 您可能会从Django Book项目中识别此代码(http://www.djangobook.com/en/2.0)
from django.shortcuts import render_to_response
from django.http import HttpResponse, Http404
import datetime
def hello(request):
return HttpResponse("Hello world")
def current_datetime(request):
current_date = datetime.datetime.now()
return render_to_response('current_datetime.html', locals())
def offset_datetime(request, offset):
try:
offset = int(offset)
except ValueError:
raise Http404()
next_time = datetime.datetime.now() + datetime.timedelta(hours=offset)
return render_to_response('offset_datetime.html', …Run Code Online (Sandbox Code Playgroud) 我明白使用STDOUT时会出错
>>> import subprocess
>>>print STDOUT
Run Code Online (Sandbox Code Playgroud)
回溯(最近一次调用最后一次):NameError中的文件"",第1行:未定义名称"STDOUT"
它也适用
from subprocess import STDOUT
Run Code Online (Sandbox Code Playgroud)
但是,如果模块中有许多这样的常量,有没有办法导入模块中定义的任何此类常量而不明确提及它们.
假设我有一个a.py用函数 x、y、z调用的 python 文件。
我想将它们导入到一个名为的新文件中 b.py
我想:from a import * 和 from a import all没有运气。
我可以单独做:from a import x, from a import y....
我怎样才能一次导入它们?
我不明白sys.argv和只是之间的区别argv,没有任何在线给我我理解的概念.如果两者都是一样的!我们什么时候使用sys.argv以及何时使用argv?
如果不是什么sys.argv.我知道是什么argv.
除了语法差异之外,我不明白import turtle和之间的区别from turtle import *是什么,因为两种方法似乎产生相同的结果:
方法一
import turtle
t = turtle.Pen()
# rest of program...
Run Code Online (Sandbox Code Playgroud)
方法2
# Method 2:
from turtle import *
t = Turtle()
# rest of program...
Run Code Online (Sandbox Code Playgroud)
我遵循的一个互联网教程使用了方法 1,另一个使用了方法 2。这两者之间有什么区别?我应该何时使用每种方法?
我正在编写一个运行一些模拟的Python脚本,但它需要很多输入参数(大约20个).所以我想把所有模拟参数都包含在外部文件中.这样做最简单的方法是什么?
我发现的一个答案是Stack Overflow问题如何在给定完整路径的情况下导入模块?,将所有模拟参数放在parm.py文件中,并使用imp包导入该模块.
这将允许运行此脚本的用户提供任何文件作为输入.如果我以这种方式导入模块:
parm = imp.load_source('parm', '/path/to/parm.py')
Run Code Online (Sandbox Code Playgroud)
那么所有参数都必须被引用为
parm.p1, parm.p2
Run Code Online (Sandbox Code Playgroud)
但是,我想在我的脚本中将它们称为p1,p2等.有没有办法做到这一点?