小编Lei*_*sen的帖子

Python中的函数参数类型

除非我弄错了,在Python中创建一个函数是这样的:

def my_func(param1, param2):
    # stuff
Run Code Online (Sandbox Code Playgroud)

但是,您实际上并未提供这些参数的类型.另外,如果我记得,Python是一种强类型语言,因此,似乎Python不应该让你传递一个与函数创建者所期望的不同类型的参数.但是,Python如何知道函数的用户是否传递了正确的类型?假设函数实际使用参数,程序是否会因错误类型而死亡?你必须指定类型吗?

python parameters function

260
推荐指数
8
解决办法
33万
查看次数

字符串的良好哈希函数

我正在尝试为字符串设想一个好的哈希函数.而且我认为总结字符串中前五个字符的unicode值可能是一个好主意(假设它有五个,否则在它结束时停止).这是一个好主意,还是一个坏主意?

我在Java中这样做,但我不认为这会产生很大的不同.

java hash hashtable hashcode

148
推荐指数
8
解决办法
33万
查看次数

android中的可点击小部件

开发人员文档似乎在这里失败了.我可以毫不犹豫地创建一个静态小部件,我甚至可以创建一个类似于模拟时钟小部件的小部件来更新自己,但是,我不能在我的生活中弄清楚如何创建一个小部件来响应用户点击的时间它.以下是开发人员文档为小部件活动应包含的内容提供的最佳代码示例(唯一的其他提示是API演示,仅创建静态小部件):

public class ExampleAppWidgetProvider extends AppWidgetProvider {
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        final int N = appWidgetIds.length;

        // Perform this loop procedure for each App Widget that belongs to this provider
        for (int i=0; i<N; i++) {
            int appWidgetId = appWidgetIds[i];

            // Create an Intent to launch ExampleActivity
            Intent intent = new Intent(context, ExampleActivity.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

            // Get the layout for the App Widget and attach an on-click listener to the …
Run Code Online (Sandbox Code Playgroud)

java android onclick android-widget

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

用于C/C++代码的预处理程序指令#ifndef

在eclipse中,每当我创建一个新的C++类或C头文件时,我都会得到以下类型的结构.假设我创建头文件example.h,我得到这个:

/*Comments*/
#ifndef EXAMPLE_H_
#define EXAMPLE_H_
/* Place to put all of my definitions etc. */
#endif
Run Code Online (Sandbox Code Playgroud)

我认为ifndef说如果没有定义EXAMPLE_H_,请定义它,这可能是有用的,这取决于您用来编译和链接项目的工具.但是,我有两个问题:

  1. 这是相当常见的吗?我不经常看到它.使用该量规是一个好主意,还是应该直接定义代码.

  2. 什么是EXAMPLE_H_究竟是什么?为什么不是example.h,还是只是示例?有没有什么特别的,或者可能只是eclipse如何更喜欢自动构建项目?

c c++ eclipse c-preprocessor

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

使用git同时提交多个分支

我正在进行的项目中有两个分支A和B. B与A的不同之处在于单个提交,这是代码的一部分完全独立于我正在为下一次工作而处理的(也就是说,我将有许多提交我想要推送到分支A和B).

在git中是否有任何方法可以同时提交分支A和分支B,而不必将其提交到一个分支,签出另一个分支,并尝试挑选提交.

git branch commit autocommit

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

在做一个`git stash`时保持变化

有没有什么方法可以运行git stash它创建我的文件存储,但也保持它们,以便我可以继续编辑它们.

我的动机是,我想为我正在做的一些工作创建一个临时快照,这样如果我搞砸了,我就可以回到它.但是,我的代码目前还没有我想要实际提交它的状态,如果我的测试工作正如我预期的那样,我想抛弃旧版本,而不是在我的历史中.

显然我可以复制我的仓库所在的目录,并在其中一个工作,但有更好的方法吗?

git

15
推荐指数
2
解决办法
1233
查看次数

在motorola手机上运行带有包找不到错误的ndk-gdb

我有一个C++ Android应用程序,我正在尝试使用ndk-gdb进行调试.应用程序确实使用多个线程,但据推测,ndk的r5支持多个线程.此外,我甚至没有达到gdb启动的程度.我运行命令:

ndk-gdb --start --force --verbose
Run Code Online (Sandbox Code Playgroud)

然后它找到ndk和sdk(或至少adb)的正确路径,以及所需的ABI和诸如此类的东西.

$ ndk-gdb --start --force --verbose
Android NDK installation path: /home/leif/eclipse/android-ndk-r5b
Using default adb command: /home/leif/eclipse/android-sdk-linux_86/platform-tools/adb
ADB version found: Android Debug Bridge version 1.0.26
Using final ADB command: '/home/leif/eclipse/android-sdk-linux_86/platform-tools/adb'
Using auto-detected project path: .
Found package name: net.leifandersen.mobile.android.marblemachine
ABIs targetted by application: armeabi
Device API Level: 10
Device CPU ABIs: armeabi-v7a armeabi
Compatible device ABI: armeabi
Run Code Online (Sandbox Code Playgroud)

然后它查找gdb服务器,并找到它,包括正确的PID,然后启动活动.

但是,它告诉我无法找到包:

Setup network redirection
## COMMAND: /home/leif/eclipse/android-sdk-linux_86/platform-tools/adb shell run-as <package name> lib/gdbserver +debug-socket --attach 16040
## COMMAND: …
Run Code Online (Sandbox Code Playgroud)

android gdb remote-debugging android-ndk android-ndk-r5

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

将信号连接到具有恒定值的插槽

为了将信号连接到插槽,据我所知,信号的参数需要与插槽的参数匹配.例如:

connect(dockWidget->titleBarWidget(), SIGNAL(closeButtonClicked()), ui->sideControls, SLOT(closeDockWidget()));
Run Code Online (Sandbox Code Playgroud)

但是,如果我想让信号调用具有不同参数量的插槽,但总是将常量值传递到插槽中,该怎么办?例如,使用上面的代码:

connect(dockWidget->titleBarWidget(), SIGNAL(closeButtonClicked()), ui->sideControls, SLOT(setDockWidget(false)));
Run Code Online (Sandbox Code Playgroud)

或者换句话说,每当按下按钮时,它都会setDockWidget()使用false参数调用该函数.这可能吗?

c++ qt qt4 signals-slots

14
推荐指数
3
解决办法
6952
查看次数

使用多个命令进行CTest

我正在使用CTest构建一些测试.通常,我可以通过以下行来设置测试:

ADD_TEST(Test_Name executable args)
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了一个问题,我有一些测试需要运行两个命令才能使它工作,有什么方法我可以在一个ctest中运行两个程序,或者我需要创建一个新的测试每个?

谢谢.

command cmake ctest

13
推荐指数
1
解决办法
6245
查看次数

在python中将字符串写入文件

尝试将字符串写入pythion中的文件时,我收到以下错误:

Traceback (most recent call last):
  File "export_off.py", line 264, in execute
    save_off(self.properties.path, context)
  File "export_off.py", line 244, in save_off
    primary.write(file)
  File "export_off.py", line 181, in write
    variable.write(file)
  File "export_off.py", line 118, in write
    file.write(self.value)
TypeError: must be bytes or buffer, not str
Run Code Online (Sandbox Code Playgroud)

我基本上有一个字符串类,其中包含一个字符串:

class _off_str(object):
    __slots__ = 'value'
    def __init__(self, val=""):
        self.value=val

    def get_size(self):
        return SZ_SHORT

    def write(self,file):
        file.write(self.value)

    def __str__(self):
        return str(self.value)
Run Code Online (Sandbox Code Playgroud)

此外,我正在调用这个类(其中变量是_off_str对象的数组:

def write(self, file):
    for variable in self.variables:
        variable.write(file)
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么事.我见过其他python程序将字符串写入文件,为什么不能这样呢?

非常感谢您的帮助.

编辑:看起来我需要说明我是如何打开文件的,这是如何:

file = open(filename, 'wb') …
Run Code Online (Sandbox Code Playgroud)

python string io file python-3.x

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