小编viv*_*khi的帖子

Python装饰器函数执行

我有下面的装饰演示代码。如果我在不显式调用greet函数的情况下执行它,则它正在print装饰器函数内部执行语句并输出Inside decorator

我无法理解装饰器的这种行为。如何time_decorator被调用,即使我没有打电话greet的功能?

我正在使用Python 3。

def time_decorator(original_func):
    print('Inside decorator')
    def wrapper(*args, **kwargs):
        start = time.clock()
        result = original_func(*args, **kwargs)
        end = time.clock()
        print('{0} is executed in {1}'.format(original_func.__name__, end-start))
        return result
    return wrapper


@time_decorator
def greet(name):
    return 'Hello {0}'.format(name)
Run Code Online (Sandbox Code Playgroud)

python decorator

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

Python 3 用户定义的不可变类对象

根据我的理解,Python 用户定义的类实例默认是不可变的。不可变对象不会改变它们的哈希值,它们可以用作字典键和集合元素。

我有以下代码片段。

class Person(object):
    def __init__(self, name, age):
        self.name=name
        self.age=age
Run Code Online (Sandbox Code Playgroud)

现在,我将实例化 Person 类并创建一个对象并打印其哈希值。

jane = Person('Jane', 29)
print(jane.__hash__())
-9223371933914849101
Run Code Online (Sandbox Code Playgroud)

现在,我将改变 jane 对象并打印其哈希值。

jane.age = 33
print(jane.__hash__())
-9223371933914849101
Run Code Online (Sandbox Code Playgroud)

我的问题是即使 jane 对象是可变的,为什么它的哈希值没有改变?

此外,我可以使用可变 jane 对象作为字典键和设置元素。

python python-3.x

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

Perl XML :: LibXML安装失败

我正在尝试通过CPAN安装Perl XML :: LibXML模块,但收到以下错误.我正在使用Windows 7机器和Perl v5.16.1.我做了很多搜索,但没有得到任何解决方案.

应该是什么问题?

Set up gcc environment - 3.4.5 (mingw-vista special r3)
enable native perl UTF8
Checking for ability to link against xml2...no
Checking for ability to link against libxml2...libxml2, zlib, and/or the Math library (-lm) have not been found.
Try setting LIBS and INC values on the command line
Or get libxml2 from
  http://xmlsoft.org/
If you install via RPMs, make sure you also install the -devel
RPMs, as this is where the headers (.h files) …
Run Code Online (Sandbox Code Playgroud)

xml perl libxml2

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

方法中的Python局部变量

我正在学习Python 3,我对Python中的面向对象编程有一个非常基本的问题.这是我的代码.

class pet:
    number_of_legs = 0
    def count_legs(self):
        print("I have %s legs" %dog.number_of_legs)

dog = pet()
dog.number_of_legs = 4
dog.count_legs()
Run Code Online (Sandbox Code Playgroud)

此代码打印:

I have 4 legs
Run Code Online (Sandbox Code Playgroud)

为什么count_legs方法不会出现"打印中的未知变量狗"这样的错误.变量狗存在于课外.

这段代码是如何工作的?这种行为背后的动机是什么?

python oop python-3.x

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

Pytest 中类范围固定装置的意外行为

我正在学习 pytest 并研究不同固定范围的行为。当我运行测试时,我看到类范围的固定装置的意外行为。这是我的项目结构。

\n
Pytest_Basics\n\xe2\x94\x82   conftest.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80pack1\n        test_a.py\n        test_b.py\n
Run Code Online (Sandbox Code Playgroud)\n

以下是每个文件的内容。

\n

测试.py

\n
import pytest\n\n\n@pytest.fixture(scope='session', autouse=True)\ndef ses_fix():\n    print('In session fixture')\n\n\n@pytest.fixture(scope='package', autouse=True)\ndef pak_fix():\n    print('In package fixture')\n\n\n@pytest.fixture(scope='module', autouse=True)\ndef mod_fix():\n    print('In module fixture')\n\n\n@pytest.fixture(scope='class', autouse=True)\ndef cls_fix():\n    print('In class fixture')\n\n\n@pytest.fixture(scope='function', autouse=True)\ndef func_fix():\n    print('In functon fixture')\n
Run Code Online (Sandbox Code Playgroud)\n

测试_a.py

\n
class TestA:\n\n    def test_a1(self):\n        assert True\n\n    def test_a2(self):\n        assert True\n\n    def test_a3(self):\n        assert True\n
Run Code Online (Sandbox Code Playgroud)\n

测试_b.py

\n
def test_b1():\n    assert True\n\n\ndef test_b2():\n    assert True\n\n\ndef test_b3():\n    assert True\n
Run Code Online (Sandbox Code Playgroud)\n

当我使用 运行测试时pytest -v -s。我得到以下输出。

\n
pack1/test_a.py::TestA::test_a1 In …
Run Code Online (Sandbox Code Playgroud)

python pytest

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

netstat命令本地地址格式

我有以下netstat -ao结果.

Proto  Local Address
TCP    0.0.0.0:22
TCP    127.0.0.1:3306
TCP    165.120.144.11:139
TCP    [::]:80
Run Code Online (Sandbox Code Playgroud)

在这个结果中,IP 0.0.0.0,127.0.0.1,165.120.144.11和[::]表示什么?

netstat

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

在Python中存储整数所需的字节数

我检查了Python持有的最大整数sys.maxsize,它返回了我9223372036854775807

那为什么我仍然可以存储一个大于该范围的值?

存储一个整数需要多少个字节,Python是否根据整数的大小更改字节数?

我正在使用Python 3.6

python python-3.x

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

标签 统计

python ×5

python-3.x ×3

decorator ×1

libxml2 ×1

netstat ×1

oop ×1

perl ×1

pytest ×1

xml ×1