小编Ant*_*ong的帖子

如何动态地向类添加属性?

目标是创建一个类似于db结果集的模拟类.

因此,例如,如果数据库查询使用dict表达式返回{'ab':100, 'cd':200},那么我想看到:

>>> dummy.ab
100
Run Code Online (Sandbox Code Playgroud)

起初我想也许我可以这样做:

ks = ['ab', 'cd']
vs = [12, 34]
class C(dict):
    def __init__(self, ks, vs):
        for i, k in enumerate(ks):
            self[k] = vs[i]
            setattr(self, k, property(lambda x: vs[i], self.fn_readyonly))

    def fn_readonly(self, v)
        raise "It is ready only"

if __name__ == "__main__":
    c = C(ks, vs)
    print c.ab
Run Code Online (Sandbox Code Playgroud)

但是c.ab返回一个属性对象.

更换setattr线路k = property(lambda x: vs[i])完全没用.

那么在运行时创建实例属性的正确方法是什么?

PS我知道如何__getattribute__使用该方法?

python monkeypatching runtime properties

193
推荐指数
11
解决办法
19万
查看次数

无法连接到macOS上的Docker守护程序

我通常更喜欢使用brew在我的OSX上管理我的应用程序

我能够安装docker,docker-compose和docker-machine

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455
Run Code Online (Sandbox Code Playgroud)

我没有下载并运行'Docker for Mac'应用程序.

但是,当我试图跑

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)

我已经检查了sock文件

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我也试过这个提出的解决方案:Mac OS X sudo docker无法连接到Docker守护进程.docker守护程序是否在此主机上运行?

但我收到此错误消息: …

macos docker macos-sierra

160
推荐指数
18
解决办法
9万
查看次数

将datetime转换为Unix时间戳并在python中将其转换回来

我有dt = datetime(2013,9,1,11),我想得到这个日期时间对象的Unix时间戳.

当我这样做时,(dt - datetime(1970,1,1)).total_seconds()我得到了时间戳1378033200.

datetime.fromtimestamp我把它转换回来的时候datetime.datetime(2013, 9, 1, 6, 0).

小时不匹配.我在这里想念的是什么?

python datetime timestamp

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

maven:是否可以通过使用命令行选项或env变量来覆盖本地存储库的位置?

目前,我们在settings.xml中指定本地存储库的位置.是否可以通过命令行或env变量覆盖此设置,以便我有时可以使用其他位置?

maven-2 maven

71
推荐指数
2
解决办法
5万
查看次数

maven:如何通过命令行选项在某些项目中跳过测试?

在我的maven项目中,我有许多模块.是否可以通过命令行选项关闭某些模块的运行单元测试?

我的项目大约需要15分钟来完成所有单元测试.我想通过在我正在处理的模块中运行单元测试来加速整体构建.我不想进入并编辑每个单独的pom.xml来实现这一目标.

我尝试过这里概述的解决方案:我可以通过maven运行特定的testng测试组吗?然而,结果是我想要跳过的模块中的许多测试失败.我想'组'与模块的概念不一样?

maven-2 maven

63
推荐指数
4
解决办法
9万
查看次数

如何在javascript/es6中导入两个同名的类?

我在文件中有这两个import语句:

import Data from 'component/Data.js';
import Data from 'actions/Data.js';
Run Code Online (Sandbox Code Playgroud)

两个文件都包含一个名为的类Data.

我该如何指定哪个是哪个?我该如何避免姓名冲突?

ecmascript-6

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

如何修复这种违反这种'反应/没有未转义权限'的eslint规则?

这是我的代码:

const func = () => {
  return (
    <div >
       you're free
      </div>
  )}
Run Code Online (Sandbox Code Playgroud)

以某种方式,eslint标记"你是免费的"行有错误 error HTML entities must be escaped react/no-unescaped-entities

但是从我可以看到jsx已经逃脱了撇号.我可以看到这些单词you're free没有问题.如果我将其转义为&#39;,那么我将很难搜索字符串(我希望you're free在编辑器中搜索返回命中.但显然编辑器会错过,因为文本实际上是you&#39;re free)

那么解决这种eslint异常的最佳方法是什么?

eslint react-jsx eslint-config-airbnb

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

lldb:无法实现:无法获取变量的值

我用这个命令行编译了一个cpp文件: g++ -g test.cpp

它在第28行引发异常.我想通过检查lldb中的变量来调查原因.我在第28行设置了一个断点并a.out在lldb中运行.

(lldb) n
Process 84233 stopped
* thread #1: tid = 0xa44b86, 0x00000001000017fb a.out`say(s=<unavailable>) + 987 at so.cpp:28, queue = 'com.apple.main-thread', stop reason = step over
    frame #0: 0x00000001000017fb a.out`say(s=<unavailable>) + 987 at so.cpp:28
   25       }
   26       else{
   27           s.insert(0, to_string(sz));
-> 28           s.erase(2, sz-1);
   29       }
   30       return s;
   31   }
(lldb) po s
error: Couldn't materialize: couldn't get the value of variable s: variable not available
Errored out in Execute, couldn't PrepareToExecuteJITExpression …
Run Code Online (Sandbox Code Playgroud)

c++ lldb osx-mavericks

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

如何将列表绑定到sqlalchemy中自定义查询中的参数?

我出于性能原因使用这个sql

 sql_tmpl = """delete from Data where id_data in (:iddata) """
 params = {  
                    'iddata':[1, 2,3 4],
                    }
 # session is a session object from   sqlalchemy
 self.session.execute(text(sql_tmpl), params)     
Run Code Online (Sandbox Code Playgroud)

但是我得到了一个例外

NotSupportedError: (NotSupportedError) ('Python type list not supported.  param=1', 'HY097') 
Run Code Online (Sandbox Code Playgroud)

是否有任何解决方法可以允许我将列表绑定到'in'子句的参数?

python sqlalchemy

24
推荐指数
4
解决办法
2万
查看次数

如果模块不是main.swift,则"顶层不允许表达式"

main.swift文件有什么特别之处吗?

我在XCode中创建了一个基于命令行的项目.如果我把一个表达式println("Hello, World!");放在一个新的swift文件中说test.swift,我会收到错误信息: Expressions are not allowed at the top level

但是,此表达式位于由新项目中的XCode创建的main.swift中的顶层.XCode不会标记此类异常.

xcode swift

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