小编Nic*_*olò的帖子

如何在库模块(pdb)中设置断点

我正在调试一个sys.path看起来像的python脚本

sys.path = ['','home/my_library', ..]
Run Code Online (Sandbox Code Playgroud)

my_library在使用pdb时在模块中设置断点时遇到麻烦.该脚本使用以下命令导入库:

import my_library as foo
Run Code Online (Sandbox Code Playgroud)

反过来,my_library通过以下方式使其模块可用:

from my_module import bar
Run Code Online (Sandbox Code Playgroud)

如何在我的脚本上运行pdb时解决my_module的代码?

PS:我尝试了以下但没有成功:

b my_module:1
b my_library.my_module:1
b my_library.bar:1
b foo.my_module:1
b foo.bar:1
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pdb

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

如何让Open Sans Light在Chrome中运行?

这是一个如何使用Google API的Open Sans的简单示例.预期的行为是显示第一行light(font-weight 300)然后第二行.

就Windows而言,这适用于FF和Edge的当前版本,但不适用于Google Chrome.这样的浏览器显示具有相同正常样式的段落,而不是使用第一段的轻段.

<head>
    <meta charset="utf-8" />
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400' rel='stylesheet' type='text/css'>
    <style>

    </style>
</head>


<body>
    <p style="font-family: 'Open Sans'; font-weight: 300;">Foobar</p>
    <br>
    <p style="font-family: 'Open Sans'; font-weight: 400;">Foobar</p>
</body>
Run Code Online (Sandbox Code Playgroud)

更新:

正如这个问题所暗示的那样,问题是由于与本地安装的字体发生冲突.事实上,请观察local来自Google API的' '字体调用:

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: local('Open Sans Light'), local('OpenSans-Light'), url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTegdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
Run Code Online (Sandbox Code Playgroud)

简单地删除本地字体并不是真正的解决方案,因为:

  1. 如果它在那里它可能是因为某些程序需要它
  2. 要求网站用户删除其本地字体不是一种选择.

因此,问题仍然存在:

如何在Chrome上(适用于任何用户)使用此功能?为什么其他浏览器会忽略本地字体?

css google-chrome google-font-api

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

如何预加载html5/JS中的部分音频文件?

我在网页中有多个音频文件.我希望所有这些都可以在页面加载后立即播放,但它太沉重而且无用,无法立即完全预加载所有页面.所以我想只预加载一定数量的音频并加载其余的音频(类似于我们在YouTube上看到的行为示例).

如何在HTML5页面上执行此操作(可能使用Javascript)?

javascript html5-audio

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

完成在python中使用它们后,我应该删除大对象吗?

假设脚本中没有任何特定的内存优化问题,那么我的问题是关于Python编码风格的。这还意味着:最好尽快使用Python取消引用对象,是一种好习惯吗?情况如下。

Class A实例化一个对象,self.foo并要求其class B存储并与其他对象共享。在某个时候A决定self.foo不再共享,并将其从中删除B

Class A仍然有对foo的引用,但我们知道此对象从现在开始就没有用。由于foo是一个相对较大的对象,您会麻烦从A删除引用吗?(例如delvs设置self.foo = None这个决定如何影响垃圾收集器?

python garbage-collection

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

Python:copy.deepcopy产生错误

在很多需要它的类中,我一直在使用这种复制方法.

class population (list):
def __init__ (self):
    pass

def copy(self):
    return copy.deepcopy(self)
Run Code Online (Sandbox Code Playgroud)

它突然开始产生这个错误:

     File "C:\Python26\lib\copy.py", line 338, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Python26\lib\copy.py", line 162, in deepcopy
    y = copier(x, memo)
  File "C:\Python26\lib\copy.py", line 255, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Python26\lib\copy.py", line 189, in deepcopy
    y = _reconstruct(x, rv, 1, memo)
  File "C:\Python26\lib\copy.py", line 323, in _reconstruct
    y = callable(*args)
  File "C:\Python26\lib\copy_reg.py", line 93, in __newobj__
    return cls.__new__(cls, *args)
TypeError: object.__new__(generator) is not safe, use …
Run Code Online (Sandbox Code Playgroud)

python generator

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

python调用函数时会发生什么?

我正在使用pdb来调试程序.我先后点击'c'来运行代码,每一步pdb都显示我执行了哪一行.

假设我们有这个代码:

def foo(bar):
   print(bar)

foo('hey')
Run Code Online (Sandbox Code Playgroud)

首先,第4行调用函数foo.然后pdb告诉我这一行

def foo(bar)
Run Code Online (Sandbox Code Playgroud)

被执行.

为什么?这条线不仅仅是一种标签吗?执行"print(bar)"之前会发生什么?(伴随着另一个人的打击)

编辑:我试验做的事情是实际检查定义.事实上,在案件foo为发生器(即不能以这样的方式被称为)蟒蛇仍到那里,然后决定把它当作一台发电机(或根据情况的功能.).

python python-2.7 pdb

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