我已经看到了问题的答案,但这些答案并非来自Windows的视角.
Windows使用CR LF,Unix使用LF,Mac使用LF,而经典mac使用其他东西.我没有脑力来告诉你,如果一个文件使用的是不同于我输入的行的结尾,我在尝试运行脚本/程序时会遇到错误,坦率地说,没有多大意义.转换后,脚本运行正常.
反正是否有预先检查文件在Windows上使用的行结尾?
对于使用其他软件包的软件包,我对全局变量有点困惑.从快速谷歌搜索; 没有多少解释.
简单地说:使用时,变量"全球化"的级别是global
多少?它是在模块级别,包级别还是解释器级别?即,在这样的设置中:
<Package>
|- __init__.py
|- Module.py
|- Module2.py
Run Code Online (Sandbox Code Playgroud)
global
在Module.py中使用了一个语句,是仅为该模块或整个包(包括Module2.py和或__init__.py)或者在interperter级别(对于在解释器中运行的任何内容)进行全局化的变量.
另外,如果在__init__.py I中from .Module import *
,包含全局语句的导入函数是否"正确地全局化"该文件的任何所述变量?
假设我编写了一个必须使用该imp
模块的 python 包,并且我的包是“TestModule”,如下所示:
import imp
import pip
import sys
def update_and_reload(module, *args, **kwargs):
pip.main(['install', module, '--upgrade', '--user'])
return imp.reload(module)
Run Code Online (Sandbox Code Playgroud)
当我import TestModule
在终端中执行此操作时,我收到了有关 的待弃用警告imp
。我如何使imp
的警告不发生/过滤掉?
鉴于以下内容:
$(function() {
function getTopMod(e) {
var requesturl = '/r/lol/about/moderators.json';
console.log(requesturl);
var response = $.getJSON(requesturl);
console.log(response);
var responsedata = response.responseJSON;
console.log(responsedata);
var mods = responsedata.data.children;
try {
var topmod = mods[0].name;
var url = document.location.origin + "/user/" + topmod;
} catch(err) {
var url = document.location.origin + requesturl;
}
console.log(url);
//return false;
}
$(document).on("click", 'li.view-top-mod a', getTopMod)
});
Run Code Online (Sandbox Code Playgroud)
请求网址已正确记录; 响应也是如此.但是当尝试记录responsedata时,它是未定义的(因此,由于没有数据属性,因此会在下一行引发错误).但是,如果我要在浏览器控制台中手动键入这些行:
var foo = $.getJSON('/r/lol/about/moderators.json');
var biz = foo.responseJSON;
biz
Run Code Online (Sandbox Code Playgroud)
正确返回responseJSON对象(如果这是正确的术语)?我将如何解决错误?
我知道我可以尝试/除了或if/else并根据错误或else子句设置默认值,但我只是想知道是否有一个可以像getattr
can 一样做的单行.
python ×3
eol ×1
file ×1
getattr ×1
globals ×1
javascript ×1
line-breaks ×1
line-endings ×1
request ×1
response ×1
warnings ×1
windows ×1