小编tho*_*mas的帖子

在Python 3.x中继承python的对象是必要的还是有用的?

在旧的python版本中,当你在python中创建一个类时,它可以从对象继承,这是我理解的一个特殊的内置python元素,它允许你的对象成为一个新式的对象.

那么新版本(> 3.0和2.6)呢?我用google搜索了类对象,但是得到了很多结果(显而易见的原因).任何提示?

谢谢!

python python-3.x

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

Python和字典就像对象

我需要一个用于字典的python 3.1深度更新函数(一个递归更新父字典内的子字典的函数).

但我认为,在将来,我的函数可能必须处理行为像字典但不是字典的对象.而且我想避免使用isinstancetype(因为它们被认为是坏的,因为我几乎可以阅读每个Pythonista的博客).

但鸭子打字是Python的哲学的一部分,所以我怎么能检查对象是否像字典一样?

谢谢!

编辑:谢谢大家的答案.以防万一,我编码的函数可以在这个地方找到:http://blog.cafeaumiel.com/public/python/dict_deep_update.py

python dictionary duck-typing

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

可靠地检测脚本是否在Web worker中执行

我目前正在用JavaScript编写一个小库,以帮助我委托给Web工作者一些繁重的计算.

出于某些原因(主要是为了能够在UI线程中调试,然后在worker中运行相同的代码),我想检测脚本当前是在worker还是在UI线程中运行.

我不是一个经验丰富的JavaScript开发人员,我想确保以下函数可以可靠地检测我是否在工作者中:

function testenv() {
    try{
        if (importScripts) {
            postMessage("I think I'm in a worker actually.");
        }
    } catch (e) {
        if (e instanceof ReferenceError) {
            console.log("I'm the UI thread.");
        } else {
            throw e;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

那么,是吗?

javascript web-worker

13
推荐指数
3
解决办法
9659
查看次数

我怎样才能评估图形着色拼图的难度?

我正在开发一个基于HTML Canvas和JavaScript的小游戏来训练自己,我选择创建一个地图着色益智游戏.

我最初计划使用给定算法解决难题所需的时间来设置难题,但我最终选择实施强力求解算法.其他算法对我来说太复杂了,因为我没有找到一些明确的资源,其中很好地解释了最佳3或4色可靠性的算法.

我的问题是可以制作一些棘手的谜题,因此蛮力解决需要很长时间,而且使用另一种解决方法仍然可以轻松解决难题.

那么,您如何确定地图着色拼图的相对难度?

language-agnostic algorithm graph-theory graph

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

控制python类的getter和setter

考虑以下课程:

class Token:
    def __init__(self):
        self.d_dict = {}

    def __setattr__(self, s_name, value):
        self.d_dict[s_name] = value

    def __getattr__(self, s_name):
        if s_name in self.d_dict.keys():
            return self.d_dict[s_name]
        else:
            raise AttributeError('No attribute {0} found !'.format(s_name))
Run Code Online (Sandbox Code Playgroud)

在我的代码中Token有一些其他函数(比如get_all()返回d_dict,has(s_name)告诉我我的令牌是否具有特定属性).

无论如何,我认为他们的计划存在缺陷,因为它不起作用:当我创建一个新实例时,python尝试调用__setattr__('d_dict', '{}').

我怎样才能实现类似的行为(可能以更加pythonic的方式?)而不必编写类似于Token.set(name,value)和get(name)的东西,我想要设置或获取令牌的属性.

关于设计缺陷和/或愚蠢的批评者欢迎:)

谢谢 !

python

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

如何填充包含孔的Android路径而不填充漏洞?

我目前正在为Android(API级别7)编写非常简单的游戏来发现和学习android SDK.此游戏涉及在屏幕上绘制形状,触摸时会改变颜色.

某些形状可能嵌入一个或多个孔.我的问题是:如果我触摸形状,整个事物的颜色变化,甚至是孔洞.这是我使用的伪代码,shape是我想绘制的多边形,边界是它的外边界,是一个洞的数组.洞和边界保持他们的点数组.

Path MyPath = Path();
Path.moveTo(boundary.points[0].x, boundary.point[0].x);
for (point in boundary) {
  MyPath.lineTo(point.x, point.y);
}
Path.close();

for (hole in shape.holes) {
  MyPath.moveTo(hole.points[0].x,hole.points[0].y);
  for (point in hole) {
    MyPath.lineTo(point.x, point.y);
  }
  MyPath.close();
}

// setting Paint here...
canvas.drawPath(MyPath, MyPaint);
Run Code Online (Sandbox Code Playgroud)

他们在Android中关于路径的东西是我缺少的,还是你有其他方法可以做到这一点?

graphics android

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

在同一台机器上运行 python 2.6 和 3.1

我目前正在家里摆弄 python,并计划切换到 python 3.1。事实上,我有一些使用 python 2.6 的脚本,但我无法转换它们,因为它们使用了一些不适用于 python 3.1 atm 的模块。所以我正在考虑安装 python 3.1 和 python 2.6。我只在互联网上发现有人通过从源代码编译 python 并使用make altinstall而不是经典的make install. 无论如何,我认为从源码编译有点复杂。我认为在 Linux 上运行一个程序的两个不同版本很容易(我运行的是 fedora 11 作为记录)。有什么提示吗?

谢谢阅读。

python linux python-3.x

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