草庐IT

global_obj

全部标签

python : Why is it said that variables that are only referenced are implicitly global?

来自PythonFAQ,我们可以读到:InPython,variablesthatareonlyreferencedinsideafunctionareimplicitlyglobal并且来自PythonTutorialondefiningfunctions,我们可以读到:Theexecutionofafunctionintroducesanewsymboltableusedforthelocalvariablesofthefunction.Moreprecisely,allvariableassignmentsinafunctionstorethevalueinthelocalsym

python - Django Python : global name 'render' is not defined

我在我的Django项目中遇到错误,它看起来像是来self的views.py文件:fromdjango.template.loaderimportget_templatefromdjango.templateimportContextfromdjango.httpimportHttpResponseimportdatetimedefget_date_time(request):now=datetime.datetime.now()returnrender(request,'date_time.html',{'current_date':now})错误:未定义全局名称“render”我该

python - 性能差异 : obj. __setitem__(x,y) 与 obj[x] = y?

我正在编写一个具有属性访问权限的简单dict子类,并且在优化时偶然发现了一些看起来很奇怪的东西。我最初将__getattr__和__setattr__方法编写为self[key]等的简单别名,但后来我认为调用它应该更快self.__getitem__和self.__setitem__直接调用,因为它们可能会被[key]符号调用。出于好奇,我对这两个实现进行了计时,并发现了一些惊喜。下面是两个实现:如您所见,这里没有太多进展。#bracketsclassAttrDict(dict):def__getattr__(self,key):returnself[key]def__setattr_

Python 名称错误 : global name 'assertEqual' is not defined

我正在学习《艰难地学习Python》,并且正在进行练习47-自动化测试(http://learnpythonthehardway.org/book/ex47.html)我使用的是Python3(与书中使用的Python2.x相比),我意识到assert_equals(书中使用的)已被弃用。我正在使用assertEqual。我正在尝试构建一个测试用例,但出于某种原因,在cmd中使用nosetests时,出现错误:NameError:globalname'assertEqual'isnotdefined代码如下:fromnose.toolsimport*fromex47.gameimpor

python - Tastypie 嵌套资源 - cached_obj_get() 正好接受 2 个参数(给定 1 个)

我正在尝试使用此处的示例:http://django-tastypie.readthedocs.org/en/latest/cookbook.html#nested-resources出于某种原因我得到:cached_obj_get()takesexactly2arguments(1given)尽管我清楚地用2个参数调用它(与上述示例完全一样。这是我的代码:defprepend_urls(self):return[url(r"^(?P%s)/(?P\w[\w/-]*)/feed%s$"%(self._meta.resource_name,trailing_slash()),self.w

python - 如何 "overload"python的打印功能 "globally"?

我使用的是python2.6.6,我需要重载默认的python打印函数。我需要这样做,因为这段代码可能会用在必须使用内置函数生成输出的系统上,否则不会显示任何输出。因此,举个例子,如果你有这样一个python脚本:from__future__importprint_functiondefNewPrint(Str):withopen("somefile.txt","a")asAFile:AFile.write(Str)defOverloadPrint():globalprintprint=NewPrintOverloadPrint()print("ha")它工作正常。“重载”打印的输入位

Python 的 eval() 和 globals()

我正在尝试使用eval()执行一些函数,我需要为它们创建某种运行环境。文档中说您可以将全局变量作为第二个参数传递给eval()。但在我的情况下似乎不起作用。这是简化的示例(我尝试了两种方法,声明变量全局和使用globals(),但两者都不起作用):文件script.py:importtestglobaltest_variabletest_variable='test_value'g=globals()g['test_variable']='test_value'eval('test.my_func()',g)文件test.py:defmy_func():globaltest_varia

python - 使用 dict comprehensions 时的问题。名称错误 : global name is not defined

我正在尝试创建一个字典,其键为name,值为对应的User对象。我正在使用来自Djangoshell包装器pythonmanage.pyshell的Pythonshell:>>>fromdjango.contrib.auth.modelsimportUser>>>names=['carl','jim','jack','john','mark']#Nowusingsomedictcomprehension>>>u={name:User.objects.get(username=name)fornameinnames}NameError:globalname'User'isnotdefin

print obj 和 print obj.__str__() 之间的 Python 区别 [至少对于 Unicode?]

我被告知调用printobj将调用obj.__str__(),后者将返回一个字符串以打印到控制台。现在我遇到了一个Unicode问题,我无法打印任何非ascii字符。我得到了典型的“ascii超出范围”的东西。在尝试以下工作时:printobj.__str__()printobj.__repr__()两个函数执行完全相同的操作(__str__()只是返回self.__repr__())。什么不起作用:printobj只有在使用超出ascii范围的字符时才会出现问题。最终的解决方案是在__str__()中执行以下操作:returnself.__repr__().encode(sys.st

python - Python __import__ 函数中的 `globals` 和 `locals` 参数有什么用?

有一部分__import__在Python文档中,我不明白:__import__(name[,globals[,locals[,fromlist[,level]]]])Thefunctionimportsthemodulename,potentiallyusingthegivenglobalsandlocalstodeterminehowtointerpretthenameinapackagecontext.Thestandardimplementationdoesnotuseitslocalsargumentatall,andusesitsglobalsonlytodetermine