小编jea*_*anc的帖子

在Python中定义类变量的正确方法

可能重复:
类__init __()函数内部和外部的变量

我注意到在Python中,人们以两种不同的方式初始化他们的类属性.

第一种方式是这样的:

class MyClass:
  __element1 = 123
  __element2 = "this is Africa"

  def __init__(self):
    #pass or something else
Run Code Online (Sandbox Code Playgroud)

另一种风格如下:

class MyClass:
  def __init__(self):
    self.__element1 = 123
    self.__element2 = "this is Africa"
Run Code Online (Sandbox Code Playgroud)

哪个是初始化类属性的正确方法?

python attributes class

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

使用WHERE在SQLAlchemy Core中批量更新

我已经设法使用SQLAlchemy中的批量插入,如:

conn.execute(addresses.insert(), [ 
   {'user_id': 1, 'email_address' : 'jack@yahoo.com'},
   {'user_id': 1, 'email_address' : 'jack@msn.com'},
   {'user_id': 2, 'email_address' : 'www@www.org'},
   {'user_id': 2, 'email_address' : 'wendy@aol.com'},
])
Run Code Online (Sandbox Code Playgroud)

我现在需要的是等同于更新的东西.我试过这个:

conn.execute(addresses.insert(), [ 
   {'user_id': 1, 'email_address' : 'jack@yahoo.com', 'id':12},
   {'user_id': 1, 'email_address' : 'jack@msn.com', 'id':13},
   {'user_id': 2, 'email_address' : 'www@www.org', 'id':14},
   {'user_id': 2, 'email_address' : 'wendy@aol.com', 'id':15},
])
Run Code Online (Sandbox Code Playgroud)

期望每行根据'id'字段进行更新,但它不起作用.我假设这是因为我没有指定WHERE子句,但我不知道如何使用字典中包含的数据指定WHERE子句.

有人能帮助我吗?

python orm sqlalchemy

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

Windows上python应用程序的配置文件存放在哪里

我有一个必须在 Windows 和 Linux 上运行的 python 程序。我通常将一些配置选项存储在程序目录的子目录中的文件中。

对于 Windows,我将其转换为 exe 并为其创建了一个安装程序。现在我有处理配置文件的问题。

保存配置文件的最佳位置是什么?我已经读过对于 Windowsos.environ['APPDATA']+'myAppName'是必须使用的路径。这是正确的吗?它是标准的吗?它是否可以在所有版本的 Windows 中运行,至少从 XP 开始(至少在英语和西班牙语中)?

PD:我对使用 ConfigParser 不感兴趣。配置文件是我自己的格式,我有从中读取/写入的工作代码。

python windows

6
推荐指数
2
解决办法
3981
查看次数

如何知道内核代码是否是原子的?

我正在编写一个内核模块,在其中实现一些将从我修改过的另一个模块中使用的函数。测试时系统崩溃。我收到“原子调度”错误。

经过调试,发现atomic_set()调用a时系统崩溃了。这意味着我正在从非原子函数调用原子函数?在这种情况下我不能使用atomic_set()吗?我应该用什么来代替?

另外,正如我所说,我修改了一些原始内核文件来调用我的函数。我怎么知道我正在工作的地方是否是原子代码?

编辑:添加实际代码

net/netfilter/ipvs/ip_vs_core.c第 451 行中,我调用我的函数:

my_callback(svc, skb);
Run Code Online (Sandbox Code Playgroud)

然后,在另一个文件中我有:

int my_callback(struct ip_vs_service *svc, struct sk_buff *skb)
{
        int swto;

        printk(KERN_INFO "callback called \n");

        swto = swtoing(svc);
        return swto;
}
Run Code Online (Sandbox Code Playgroud)

我的swtoing()函数有点长,但是我已经调试了很多,并且发现如果我用swtoing()...atomic_set()注释其中的一行,系统不会崩溃。

有什么帮助吗?

编辑2:更多信息

我意识到我正在修改的内核模块充满了类似的spin_locks东西......所以我认为(如果我错了请原谅我)我必须在我正在创建的函数中做一些事情,以保持锁定/原子的东西......但我不知道是什么:(

c atomic linux-kernel

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

Django generics.ListAPIView 接受 POST 方法

我有一个 Django 视图,它扩展了generics.ListAPIView. 它适用于获取请求,但是由于 URL 的字符限制,现在我需要通过 POST 发送请求。这是相同的请求,我唯一需要更改的是 POST 方法。我当前的代码非常简单:

class MyClass(generics.ListAPIView):
serializer_class = MySerializer
paginate_by = 1

def get_queryset(self):
    queryset = SomeClass.objects.all()
    # do some filtering
Run Code Online (Sandbox Code Playgroud)

我如何向此类添加 POST 支持?

python django http

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

将Linux内核.config文件复制到其他版本是否安全?

特别是将.config文件从Kernel 3.0.1复制到内核3.2.1是否安全?

linux linux-kernel

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

优化python代码以使用对象名称

我有一个包含16个正方形的pygtk表,每个正方形包含一个标签.标签名称为:label1,label2,label3,...,label16.

我也有一个每n秒触发一次的计时器.当计时器被触发时,其中一个正方形被突出显示(只需将其字体大小设置为18,将其余字体大小设置为12).

如果只有3个标签,代码将是这样的:

def update_grid(self):
    if self.timer_id is not None:
        self.__actual_choice = (self.__actual_choice % 16)+1
        if self.__actual_choice == 1:
            self.label1.modify_font(self.__font_big)
            self.label2.modify_font(self.__font_small)
            self.label3.modify_font(self.__font_small)
        elif self.__actual_choice == 2:
            self.label1.modify_font(self.__font_small)
            self.label2.modify_font(self.__font_big)
            self.label3.modify_font(self.__font_small)
        elif self.__actual_choice == 3:
            self.label1.modify_font(self.__font_small)
            self.label2.modify_font(self.__font_small)
            self.label3.modify_font(self.__font_big)
Run Code Online (Sandbox Code Playgroud)

但是有16个标签,代码将是巨大的.我想知道在python中是否有办法做类似的事情:

            self.(label+"i").modify_font(self.__font_small)
Run Code Online (Sandbox Code Playgroud)

python

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

在list_for_each_entry中使用break是否安全?

对一个while/for循环使用break指令是否安全list_for_each_entry(在Linux内核中)?

举例:

list_for_each_entry(obj1, vars, list) {
    ...
    while(j < k)
    {
        ...
        if(k >= MAX_ITERATIONS) break; // break the while
        ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

while循环是否会按预期被破坏或被list_for_each_entry破坏?

c linux-kernel

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

标签 统计

python ×5

linux-kernel ×3

c ×2

atomic ×1

attributes ×1

class ×1

django ×1

http ×1

linux ×1

orm ×1

sqlalchemy ×1

windows ×1