我正在使用pycharm
它,它列出了与代码相关的所有错误/警告.虽然我理解他们中的大部分但我不确定这个"Shadows从外部范围命名xyz".关于此问题有一些SO帖子:在外部范围中定义的阴影名称有多糟糕?但后来他们似乎正在访问一个全局变量.
在我的例子中,我的__main__
函数有一些变量名,然后它调用另一个函数sample_func
再次使用这些变量名(主要是循环变量名).我假设因为我在一个不同的函数,这些变量的范围将是本地的,但警告似乎暗示其他.
有什么想法吗?以下是一些代码供您参考:
def sample_func():
for x in range(1, 5): --> shadows name x from outer scope
print x
if __name__ == "__main__":
for x in range(1, 5):
sample_func()
Run Code Online (Sandbox Code Playgroud) Django官方文档和Web上的其他教程总是在url的末尾使用尾部斜杠.例如:
url(r'^accounts/login/', views.login) # login view in turn calls login.html
# instead of
url(r'^accounts/login', views.login)
Run Code Online (Sandbox Code Playgroud)
由于accounts
是目录而且login (login.html)
是文件,我们不应该使用第二个URL吗?这也将使GET
参数看起来更有条理:
accounts/login?name='abc' # login is a file that is accepting parameters
vs.
accounts/login/?name='abc' # login directory (maybe index) is accepting parameters??
Run Code Online (Sandbox Code Playgroud) 在我看来,我在多个模型中保存数据:
def myview(request):
#do some processing
model1.save()
model2.save()
Run Code Online (Sandbox Code Playgroud)
如何确保存在回滚model1.save()
以防model2.save()
出现错误.或者只有在两个模型都成功保存后才能提交?
换句话说,"如果save()都成功,则只保存model1和model2"
如何将PyCharm连接到远程服务器以进行远程开发?
我希望PyCharm充当远程系统的可视化界面?(类似终端 - > ssh - > vim,但有很好的PyCharm IDE)
Pycharm在第5行突出显示".keys()"并为此示例代码提供了以下警告:
1 def testfunc():
2 mydic = {}
3 for x in range(5):
4 mydic[x] = str(x)
5 elems = set(mydic.keys())
Run Code Online (Sandbox Code Playgroud)
Python解释器:来自anaconda的python2.7.Pycharm v2017.3
有人可以帮我理解为什么我会收到此警告?一切都按预期工作.
根据官方文档:
如果我查看源代码,它们似乎都是独立的类,每个类都继承自基类object
。然而,它们似乎在某种程度上有关联,只是我不知道如何关联。
我能找到的唯一关系是Field
类定义了一个方法get_bound_field
。此方法的文档字符串为“返回一个 BoundField 实例,该实例将在访问模板中的表单字段时使用。 ”
问:你能帮我弄清楚BoundField
和之间的关系Form Field
吗?如果是的话,它们究竟有何不同?或者什么时候使用哪一个?
我要有条件地清除django.contrib.messages
。这两个问题中讨论的解决方案都不起作用:
删除所有 django.contrib.messages
Django:在显示之前删除消息
关于如何清除消息的任何建议?我正在使用 Django 1.10
代码:
messages = get_messages(request)
for msg in messages:
pass
for msg in messages._loaded:
del msg
for msg in messages._queued_messages:
del msg
Run Code Online (Sandbox Code Playgroud) 在尝试访问Google自定义搜索引擎API时,我收到超出每日限制错误消息403.根据官方文档:https://developers.google.com/custom-search/json-api/v1/overview我每天获得10k次查询.而且我很确定今天我已经在2k以下查询了.我已启用结算并输入了信用卡信息(我的帐户也有).
我有两个问题:
我已经看到了其他类似的问题,我发布了这个问题,因为它们似乎都没有解决我的问题.
码:
class Fraction(object):
def __init__(self, num, denom):
self.numerator = num
self.denominator = denom
def main():
f = Fraction(1, 3)
print type(f)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
输出:
<class '__main__.Fraction'>
Run Code Online (Sandbox Code Playgroud)
题:
__main__.Fraction
而不仅仅是Fraction
?为什么会有"." 之间__main__
和Fraction
?"" 暗示这Fraction
是一个子类__main__
.但为什么?即使我If __name__ == "__main__"
从代码中删除,我仍然得到相同的输出:
class Fraction(object):
def __init__(self, num, denom):
self.numerator = num
self.denominator = denom
f = Fraction(1,3)
print type(f)
output: <class '__main__.Fraction'>
Run Code Online (Sandbox Code Playgroud)预期输出:[1,1,1,1,0,0]
我的方法:
out = [1]*len(positive)
out.extend([0]*len(negative))
out = np.array(out)
Run Code Online (Sandbox Code Playgroud)
我觉得应该有一个更好的方法来生成像这样的numpy数组,而不是这个三步过程.
django ×4
python ×4
pycharm ×3
python-2.7 ×2
boost ×1
c++ ×1
caffe ×1
google-api ×1
numpy ×1
oop ×1