小编Sta*_*dog的帖子

像属性一样访问dict键?

我发现访问dict密钥更加方便,obj.foo而不是obj['foo'],所以我写了这个代码片段:

class AttributeDict(dict):
    def __getattr__(self, attr):
        return self[attr]
    def __setattr__(self, attr, value):
        self[attr] = value
Run Code Online (Sandbox Code Playgroud)

但是,我认为必须有一些原因,Python不提供开箱即用的功能.以这种方式访问​​dict密钥有什么警告和陷阱?

python syntax dictionary

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

如何仅部分实现具有抽象类的接口时满足编译器?

这里有一个名为的界面IFish.我想用一个抽象的class(WalkingFishCommon)派生它,它提供了一个不完整的实现,因此派生的类WalkingFishCommon不必实现该CanWalk属性:

interface IFish
{
    bool Swim();
    bool CanWalk { get; }
}

abstract class WalkingFishCommon : IFish
{
    bool IFish.CanWalk { get { return true; } }

    // (1) Error: must declare a body, because it is not marked
    // abstract, extern, or partial
    // bool IFish.Swim();

    // (2) Error: the modifier 'abstract' is not valid for this item
    // abstract bool IFish.Swim();

    // (3): If no declaration is provided, compiler says …
Run Code Online (Sandbox Code Playgroud)

c# abstract-class

22
推荐指数
3
解决办法
1134
查看次数

从远程Git仓库删除或删除所有历史记录,提交和分支?

我已经阅读并尝试了很多Git命令建议和讨论,现在持续了好几天.似乎没有简单,全面的方法来使远程Git repo完全变空 - 没有分支,没有引用,没有对象,没有文件,没有任何东西.

是的,我认识到可以删除并重新创建回购 - 如果一个人对原点有这种权限(我没有),但这不是重点.怎么做?Git命令的哪些组合实际上会做到这一点,让处于处女状态的repo准备接收我们希望推入它的任何东西,并且基本上没有大小(或者处女回购的最小尺寸)

不要告诉我不应该这样做,或者我们必须通知所有用户等.我知道这一切. 我只是想彻底开始.

git

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

从gdb设置std :: string变量值?

是否有可能......当调试器在断点处停止时,修改std :: string变量的值而不诉诸于调整当前缓冲区的内存映像等黑客攻击?

例如"set var mystring ="hello world"

c++ gdb stdstring

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

Objective-C是否保证接口成员数据的初始化?

在这样的界面中:

@interface MyClass : NSObject
{
    bool PlainOldBool;
}

@end
Run Code Online (Sandbox Code Playgroud)

...确实PlainOldBool自动初始化为false,或者是否有必要使用init方法明确地执行此操作?

objective-c

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

Eclipse可以一次重新格式化多个文件吗?

我投入了大量时间在Eclipse中创建代码样式配置文件,符合我们的代码标准.有没有办法一次性将这种样式应用于多个文件,所以我不必手动加载/格式化/保存每个文件?

eclipse

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

Windows"netstat -b"如何确定拥有每个套接字的进程的名称?

我正在寻找netstat -b用于确定每个套接字的拥有进程的底层API调用.有任何想法吗?

sockets windows api

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

OSX/Yosemite上的MacVim:根本看不到编辑器窗口

今天在我的Yosemite 10.10.2 Macbook Pro上安装了MacVim,来自http://www.macupdate.com/app/mac/25988/macvim

问题是没有可见的编辑器窗口.如果我使用菜单打开文件,则根本没有效果:不显示编辑器窗口.它没有隐藏在其他窗口后面,它没有列在Windows菜单中,它只是完全没有显示.

奇怪的是,该文件将出现在MRU列表中.所以这使得整个编辑器完全没用.我应该自己构建gvim吗?这个应用程序是否真的由任何人维护?

macos macvim osx-yosemite

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

如何在Eclipse CDT中更改活动启动配置

感觉相当愚蠢:我有一个C++项目,使用Eclipse CDT(Eclipse 3.6,CDT 1.3.1).

我定义了多个启动配置:每个配置指向项目中的不同可执行文件.但是,当我按F11进行调试时,Eclipse总是加载第一个配置,而我却找不到让它启动第二个配置的方法.

当然这应该在某个地方设置菜单或对话框?

eclipse eclipse-cdt

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

在XCode调试器中,是否可以"运行到当前行"?

在XCode中,似乎没有一种明显的方法可以做到这一点.Visual Studio的调试器提供了一个键盘快捷键,它在代码窗口中选择的行上设置临时断点,运行调试器到该点,然后删除断点.在XCode中,您似乎必须手动设置和删除断点才能完成相同的操作.

有更简单的方法吗?

debugging xcode gdb

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

写入串口时速度大幅降低

使用pygame从控制器读取信息,但是当我添加arduinoData.write(str.encode(ALL_DATA))它时速度会降低很多,我该怎么办?

该行几乎添加到底部。是线路的放置吗?它肯定可以工作,但发送更新的速度不像我不会写入串行那样快。

import sys
import serial
import pygame
import time

from pygame.locals import *
pygame.init()

A0_value = '0'
A1_value = '0'
A2_value = '0'
A3_value = '0'
A4_value = '0'
A5_value = '0'
A6_value = '0'
B2 = '0'
B3 = '0'
B4 = '0'
B5 = '0'
global axis_data 

## 
arduinoData = serial.Serial('COM8',9600)

##

def main():
    global axis_data , button_data
    screen = pygame.display.set_mode((500, 700))
    pygame.display.set_caption("Joystick example")

    clock = pygame.time.Clock()
    joysticks = {}

    while True:
        for event in …
Run Code Online (Sandbox Code Playgroud)

python pygame pyserial

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

达尔文:如何在不杀害孩子的情况下杀死父母进程?

在OS X 10.4/5/6上:

我有一个产生孩子的父进程.我想在不杀死孩子的情况下杀死父母.可能吗?我可以在任一app上修改源代码.

unix macos bsd

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