小编Bic*_*eng的帖子

为什么Python中的属性类属性?

我正在阅读Fluent Python第19章>正确查看属性,我对以下单词感到困惑:

属性始终是类属性,但它们实际上管理类实例中的属性访问.

示例代码是:

class LineItem:

    def __init__(self, description, weight, price):
        self.description = description
        self.weight = weight  # <1>
        self.price = price

    def subtotal(self):
        return self.weight * self.price

    @property  # <2>
    def weight(self):  # <3>
        return self.__weight  # <4>

    @weight.setter  # <5>
    def weight(self, value):
        if value > 0:
            self.__weight = value  # <6>
        else:
            raise ValueError('value must be > 0')  # <7>
Run Code Online (Sandbox Code Playgroud)

根据我以前的经验,类属性属于类本身并由所有实例共享.但是在这里,weight,属性是一个实例方法,它返回的值在实例之间是不同的.如何成为类属性?不是所有类属性对于任何实例都应该是相同的吗?

我想我误解了一些东西,所以我希望得到正确的解释.谢谢!

python

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

为什么 BIOS 需要在第二条指令中将(看似)随机地址中的值与零进行比较?

我试图通过深入了解操作系统的低级细节来学习它。我现在上的课程是MIT 6.828 操作系统工程。实验室要求学生进入 BIOS 以获取一些说明。BIOS 的前三个汇编指令如下:

0xffff0:    ljmp    $0xf000,$0xe05b
0xfe05b:    cmpl    $0x0,%cs:0x6c48
0xfe062:    jne     0xfd2e1
Run Code Online (Sandbox Code Playgroud)

我想不通的是第二个:cmpl $0x0,%cs:0x6c48. 它有什么作用?为什么需要这个条件才能jmp到特定的地方?我在网上搜索了一段时间,但仍然找不到解释。更棘手的是,我发现不同的人会得到不同的地址来进行比较,比如0x6ac80x65a4或者0x6c48这里。

x86 assembly qemu bios osdev

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

如何在flask-bootstrap中使用bootstrap4?

Flask-bootstrap自动提供的css文件如下所示:

<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

它是版本3。是否可以在flask-bootstrap中使用bootstrap4?现在,我只是在基本模板中将css和js文件更改为版本4。但是我想知道这是否会带来一些细微的问题。

python flask flask-bootstrap

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

为什么c ++中的"\ t"有不同的宽度?

这是我执行以下代码后得到的结果:

标签结果

cout << "The size of an int is: \t" << sizeof(int) << " bytes.\n";
cout << "The size of an long is: \t" << sizeof(long) << " bytes.\n";
cout << "The size of an double is: \t" << sizeof(double) << " bytes.\n";
Run Code Online (Sandbox Code Playgroud)

为什么第一行中的\ t远小于第二行或第三行?

c++

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

每个python包都需要__init__.py吗?[python 3.3+以来的新功能]

我在python教程中看到了这个:

需要__init__.py文件才能使Python将目录视为包含包;

我在pycharm中创建了这样的目录层次结构,其中subdir1不包含__init__.py,而subdir2包含__init__.py文件. 在此输入图像描述

首先,我将Directory添加到system.pyth中.

我分别在hello1.py和hello2.py中编写了一个hello函数.

然后我在测试文件中调用hello func,如下所示:

# test1.py
from subdir1 import hello1
hello1.hello()

# test2.py
from subdir2 import hello2
hello2.hello()
Run Code Online (Sandbox Code Playgroud)

他们都成功了.对于来自不同目录的导入模块,似乎不需要__init__.py,对吧?

所以,我想知道在什么情况下需要__init__.py.谢谢你的回答!

python python-3.6

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

d.update(dict(a = 1,b = 2))和d.update(dict('a'= 1,'b'= 2))之间的区别是什么

我尝试了两种方法来更新python中的字典:

  1. d.update(dict(a=1, b=2)) 这个效果很好.
  2. d.update(dict('a'=1, 'b'=2)) 但是,这种方式让我SyntaxError: keyword can't be an expression 对第二个陈述有 什么不对?为什么一定要a而不是'a'?谢谢.

python dictionary

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

pandas.Series.str.get方法如何工作?

我有一个pandas.Series命名匹配如下:

在此输入图像描述

当我调用pandas.Series.str.get方法时,它返回一个新的Series,其值全部为NaN:

在此输入图像描述

我已经阅读了文件pandas.Series.str.get,但仍然无法理解它.

python pandas

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

如何使用哈希进行密码检查?

我正在通过Miguel Grinberg的出色教程来学习Flask 。在该章中,出于安全原因,他建议存储用户的密码哈希而不是密码本身。被使用的功能generate_password_hashcheck_password_hash。但是,即使您generate_password_hash使用相同的字符串进行调用,也可以获得不同的哈希值:

在此处输入图片说明

那么,check_password_hash如果相同的字符串可以具有尽可能多的哈希值,该如何工作?

python hash

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

标签 统计

python ×6

assembly ×1

bios ×1

c++ ×1

dictionary ×1

flask ×1

flask-bootstrap ×1

hash ×1

osdev ×1

pandas ×1

python-3.6 ×1

qemu ×1

x86 ×1