小编Ily*_*rov的帖子

如果传递给带注释函数的参数类型与指定的参数不匹配,是否可能产生python throw错误?

python3.5的一个新功能是类型提示.例如,以下代码现在有效:

def greeting(name: str) -> str:
    return 'Hello ' + name
Run Code Online (Sandbox Code Playgroud)

但是,正如我所理解的那样,它不会自行检查任何内容,并且解释方式与此完全相同:

def greeting(name):
    return 'Hello ' + name
Run Code Online (Sandbox Code Playgroud)

并且主要用于帮助静态分析器(并使代码更容易理解).但是当将无效类型的参数传递给具有带注释的参数类型的函数时,是否存在(或计划在将来实施)以任何方式(可能通过使用某些第三方库)来发出python throw错误(仅使用类型提示语法)?

python type-hinting python-3.5

11
推荐指数
2
解决办法
1613
查看次数

有没有一种快速的方法来找到(不一定能识别)音频文件中的人类语音?

我想编写一个自动同步未同步字幕的程序.我想到的解决方案之一就是以某种方式通过算法找到人类的语言,并将子弹进行调整.我找到的API(Google Speech API,Yandex SpeechKit)可以与服务器一起使用(对我来说不是很方便),并且(可能)做了很多不必要的工作来确定究竟说了什么,而我只需要知道某些东西已经有了有人说.

换句话说,我想给它音频文件,并得到这样的东西:

[(00:12, 00:26), (01:45, 01:49) ... , (25:21, 26:11)]
Run Code Online (Sandbox Code Playgroud)

是否有解决方案(最好是在python中)只能找到人类语音并在本地机器上运行?

python voice-recognition

9
推荐指数
2
解决办法
2718
查看次数

将元素添加到顶部时保持滚动位置

我正在尝试创建一个可以向左和向右无限滚动的日历。当用户向前(简单)或向后滚动(问题出在这里)时,它必须动态加载新内容。

当我将内容添加到页面末尾时,它工作正常 - 滚动条调整到新的container.scrollWidth. 但是当我必须在开头添加内容时,整个日历会以 400px 的巨大跳跃向右移动,因为container.scrollLeft属性没有改变,现在开头有一个新元素。

我试图通过container.scrollLeft将新创建的元素的宽度增加400px来缓解这种情况。此方法有效,但仅适用于使用鼠标滚轮(shift+鼠标滚轮向侧面滚动)或移动触摸屏滚动时。

如果我使用鼠标拖动滚动条,它会出现故障 - 我猜它一直试图滚动到旧scrollLeft位置而无视我增加了它。

您能否建议一种方法来实现所有滚动方式的这种行为?

如果您能将我指向一个使用这种技术的网站,这样我就可以进行自我调查,那也太好了。

这是我的半工作示例:

function Container() {
  const rectangleWidth = 400;

  const container = React.useRef(null);

  const [leftRectangles, setLeftRectangles] = React.useState([0]);
  const [rightRectangles, setRightRectangles] = React.useState([1, 2, 3, 4]);


    // When we just rendered a new rectangle in the left of our container,
  // move the scroll position back
  React.useEffect(() => {
    container.current.scrollLeft += rectangleWidth;
  }, [leftRectangles]);

  const loadLeftRectangle = () => { …
Run Code Online (Sandbox Code Playgroud)

javascript scroll reactjs

7
推荐指数
2
解决办法
2575
查看次数

为什么del是一个指令而不是python中的方法?

为什么python的创建者更喜欢这种语法(指令)

del list[index]
Run Code Online (Sandbox Code Playgroud)

这个(方法)?

list.del(index)
Run Code Online (Sandbox Code Playgroud)

在我看来,是del属于同一个"cathegory"为append,remove,find,等,因此应该有相同的语法(是一种方法),但由于一些原因,蟒蛇的创造者实现它的指令.他们为什么这么做?

python

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

检查密钥是否在字典中并且在相同的"if"安全中获取它的值?

我认为这是安全的:

if key in test_dict:
    if test_dict[key] == 'spam':
        print('Spam detected!')
Run Code Online (Sandbox Code Playgroud)

但这样安全吗?

if key in test_dict and test_dict[key] == 'spam':
    print('Spam detected!')
Run Code Online (Sandbox Code Playgroud)

它应该做同样的事情因为条件检查在python中是懒惰的.它不会尝试获取值(并引发异常,因为dict中没有这样的键)因为第一个条件已经不满足.但我可以依靠懒惰并在我的程序中使用第二个例子吗?

python dictionary python-3.x

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

时间装饰器提升"'NoneType'对象不可调用"异常

我有计时功能和我的主要功能.当我只使用main函数它运行正常,但当我使用计时功能作为装饰器时,它会引发异常.

定时功能码:

def timing(function):
    import time
    t = time.time()
    function()
    t = time.time() - t
    print('Program has been running for {} seconds.'.format(t))
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

@timing
def main():
    #some code
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-decorators

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

如何检索蒸汽市场价格历史记录?

我正在尝试获取蒸汽市场上物品的价格历史记录。我找到了一个返回特定商品价格历史记录的链接(几乎每个有关从该网站的市场获取价格历史记录的问题都提到了这一点)。

http://steamcommunity.com/market/pricehistory/?country=PT¤cy=3&appid=730&market_hash_name=Falchion%20Case

当我登录 Steam 时,它在浏览器中运行良好,但是当我尝试在 python 中执行相同的操作时,它返回一个空列表(当我尝试在浏览器中执行此操作而不登录时,也会发生同样的情况 -在 Steam 中)。这是我的 python 代码(使用请求库):

import requests

params = {'country': 'RU', 'currency': 5, 'appid': 730, 'market_hash_name': 'Falchion%20Case'}
data = requests.get('http://steamcommunity.com/market/pricehistory', params=params)
print(data.text)
Run Code Online (Sandbox Code Playgroud)

所以,问题是:有没有办法在使用 python(或其他语言)发出请求时模拟登录 Steam?

python steam-web-api steam

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