小编abc*_*bcd的帖子

将大写锁定密钥重新映射到Mma 7中的Esc

TLDR:如何在Mma 7中将CapsLock转换为"ShortNameDelimiter"?

我喜欢我的mma笔记本中的漂亮文本,并且经常定义函数f[\[Alpha]_] =...以匹配我正在使用的确切方程.因此,它涉及很多Esc- letter- Esc序列,并且Esc每隔一个笔划达到打破我的打字流程.

现在,CapsLock关键很少使用(我不记得我最后一次需要它),但是方便放置(你的小指就在那里!).它重新映射到Escvim为我创造了奇迹,我想知道是否有办法做到在同一个mma,而不必修改系统的键盘布局.

我尝试KeyEventTranslations.tr通过添加以下内容进行编辑EventTranslations[{...

Item[KeyEvent["CapsLock"], "ShortNameDelimiter"]
Run Code Online (Sandbox Code Playgroud)

但那没有效果.还有另一种方法吗?是CapsLock不正确的标识?如果它有帮助,我在Mac上使用Mma7学生版.

macos wolfram-mathematica keymapping mathematica-frontend

12
推荐指数
1
解决办法
1093
查看次数

在导入类时调用带有索引的静态方法

我在路径myClass.m中的包文件夹+myPack中有一个类文件.类文件的一个简单示例是:

classdef myClass
    properties
        prop
    end

    methods
        function obj = myClass(x)
            obj.prop = x;
        end
    end
end 
Run Code Online (Sandbox Code Playgroud)

现在,如果我直接调用该方法并使用完整包名访问该属性,即:

x = myPack.myClass(2).prop;
Run Code Online (Sandbox Code Playgroud)

x = 2正确返回.现在,如果我通过导入此类(而不是使用包名称)尝试相同的操作:

import myPack.myClass
y = myClass(2).prop
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

无法索引静态方法或构造函数调用.不要使用任何其他索引或点引用来跟随对静态方法或构造函数的调用.

为什么这在第一种情况下工作而不是第二种情况?据我所知,import一个类主要允许一个人使用没有长包名的类名(以及其他考虑因素).这两个导致此错误的区别是什么,我该如何解决?

oop matlab

9
推荐指数
1
解决办法
1453
查看次数

使用模式查找第n个元素

我正在通过Learn You A Haskell工作,以便快速掌握Haskell的基础知识.我对函数式编程和模式匹配都很满意,但后者更像是Mathematica如何做到这一点.

本着head第4.1章中幼稚实施的精神,我进行了一个天真的实现last:

last1 :: [a] -> a
last1 (_:x:[]) = x
Run Code Online (Sandbox Code Playgroud)

但是,调用last1 [1,2,3,4]给出了错误Exception: ... Non-exhaustive patterns in function last1.我理解这个错误意味着指定的模式并不涵盖所有可能的输入,通常,需要一个包罗万象的模式(我没有提供).但是,我不确定为什么我的输入会出现错误.

问题1:我(我的错误方法)的理解是第一个元素被捕获,_其余元素被分配x,这不是我想要的.但是,这不应该给出类型错误,因为我指定了[a] -> a,但x现在是一个列表?

请注意,这不是关于如何编写工作last函数 - 我知道我可以将其编写为(以及其他可能性)

last2 :: [a] -> a
last2 [x] = x
last2 (_:x) = last2 x
Run Code Online (Sandbox Code Playgroud)

问题2:在更好地理解Haskell中的模式匹配的同一主题中,我如何使用模式匹配来挑选最后一个元素,或者更一般地,n从给定列表中选择th元素,比方说,[1..10]

这个答案表明你可以使用与ViewPatterns扩展名的模式匹配来绑定最后一个元素,但似乎很奇怪没有类似的"简单"模式.head …

haskell

6
推荐指数
1
解决办法
1960
查看次数

在烧瓶应用程序中运行scrapy蜘蛛在背景中

我正在构建一个使用FlaskScrapy的应用程序.访问我的应用程序的根URL时,它会处理一些数据并显示它.另外,如果它还没有运行,我也想(重新)启动我的蜘蛛.由于我的蜘蛛需要大约1.5小时才能完成运行,因此我使用线程将其作为后台进程运行.这是一个最小的例子(你还需要testspiders):

import os
from flask import Flask, render_template
import threading
from twisted.internet import reactor
from scrapy import log, signals
from scrapy.crawler import Crawler
from scrapy.settings import Settings    
from testspiders.spiders.followall import FollowAllSpider

def crawl():
    spider = FollowAllSpider(domain='scrapinghub.com')
    crawler = Crawler(Settings())
    crawler.configure()
    crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
    crawler.crawl(spider)
    crawler.start()
    log.start()
    reactor.run()

app = Flask(__name__)

@app.route('/')
def main():
    run_in_bg = threading.Thread(target=crawl, name='crawler')
    thread_names = [t.name for t in threading.enumerate() if isinstance(t, threading.Thread)]

    if 'crawler' not in thread_names:
        run_in_bg.start() …
Run Code Online (Sandbox Code Playgroud)

python scrapy python-multithreading flask

6
推荐指数
1
解决办法
3275
查看次数

使用BeautifulSoup读取<script>的内容

我一直试图阅读以下网站的来源:

import urllib2
from BeautifulSoup import BeautifulSoup

url     = 'http://www.myurl.com/'
headers = {'User-Agent' : 'Mozilla/5.0'}
request = urllib2.Request(url,None,headers)
soup    = BeautifulSoup(urllib2.urlopen(request).read())
Run Code Online (Sandbox Code Playgroud)

我进一步缩小范围scriptResults = soup('script',{'type' : 'text/javascript'}).其内容的样本如下:

scriptResults = [<script type="text/javascript"> ... </script>,
                 ...,
                 <script type="text/javascript">
                     //comment 1
                     $(function () {
                     //comment 2
                     var True = true, False = false;
                         func.start({
                             token1 : "...",
                             token2 : [...],
                             ...
                             tokenN : ["value1","value2",...,"valueK"],
                             ...
                         })
                     })
                 </script>,
                 ...
                 ]
Run Code Online (Sandbox Code Playgroud)

现在我有兴趣提取值tokenN.我知道它在整个文档中是独一无二的,并且存在于我正在尝试阅读的所有网页中.此外,结果的数量scriptResults可能会有所不同,令牌的数量也会有所不同,因此我无法使用位置索引来访问它.另外,我意识到它BeautifulSoup是一个HTML解析器,并不解析JS.我如何使用正则表达式提取此信息?

如果没有一种简单的方法可以获得所有这些,以下可能是妥协.大多数的的 …

python regex beautifulsoup

1
推荐指数
1
解决办法
1万
查看次数