## 简介
TimePinner 是一个简单的计时工具。
类似于代码中的秒表。
可标记多个点,以记录若干段时间长度。
每段时间可以命名,以方便记忆,也可跳过无须记录的时间段。
## 安装与导入
### 安装
```python
pip install TimePinner
```
---
### 导入
```python
from TimePinner import Pinner
```
---
## 使用方法
### 创建对象
```python
from TimePinner import Pinner
pinner = Pinner()
```
---
### 记录时间点
使用`pin()`方法记录一个时间点,并返回时间差,可以通过`text`参数给该时间点命名。
可用`show`参数设置是否打印。
也可以在创建对象时用`show_everytime`参数设置是否打印。
`pin()`的`show`参数比创建对象时`show_everytime`参数优先级高。
如果`all_time`参数为`True`,打印和返回的是与第一个时间点的时间差。
```python
pinner = Pinner()
pinner.pin() # 记录起始点
sleep(1)
pinner.pin('记录1')
sleep(2)
pinner.pin('记录2', show=False) # 不打印该节点
```
输出:
```console
0.0
记录1:1.0084643
```
---
### 跳过时间段
有些时间段无须记录,用`skip()`方法跳过。下一个记录会以当前点作为起始。
```python
pinner.skip()
```
---
### 打印结果
通过`show()`方法,可以把记录到的时间段打印出来。
如果`all_time`参数为`True`,打印出来的是每个时间点与第一个时间点的时间差。
```console
记录1:1.007383
记录2:2.0145351000000002
```
---
### 获取结果
通过`records()`方法获取各个记录的时间段,每个时间段为一个两位元组。
如果`all_time`参数为`True`,打印出来的是每个时间点与第一个时间点的时间差。
```python
print(pinner.records())
```
输出:
```console
[('记录1', 1.0084643), ('记录2', 2.0126551999999998)]
```
---
### 获取最短的时间段
通过`winner()`方法可以获取最短的时间段,用于对比几段代码运行时间。
如果`all_time`参数为`True`,打印出来的是每个时间点与第一个时间点的时间差。
```python
print(pinner.winner())
```
输出:
```console
('记录1', 1.0084643)
```
---
### 重置
使用`reset()`方法清空已有记录并重新开始计时。
Raw data
{
"_id": null,
"home_page": "https://drissionpage.cn/TimePinner",
"name": "TimePinner",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "stopwatch",
"author": "g1879",
"author_email": "g1879@qq.com",
"download_url": "https://files.pythonhosted.org/packages/07/a5/a3617a6082afac59d0717699d5d26c8a3907d77a2f81fe6a768e690a062e/timepinner-1.0.0.tar.gz",
"platform": null,
"description": "## \u7b80\u4ecb\r\n\r\nTimePinner \u662f\u4e00\u4e2a\u7b80\u5355\u7684\u8ba1\u65f6\u5de5\u5177\u3002\r\n\r\n\u7c7b\u4f3c\u4e8e\u4ee3\u7801\u4e2d\u7684\u79d2\u8868\u3002\r\n\r\n\u53ef\u6807\u8bb0\u591a\u4e2a\u70b9\uff0c\u4ee5\u8bb0\u5f55\u82e5\u5e72\u6bb5\u65f6\u95f4\u957f\u5ea6\u3002\r\n\r\n\u6bcf\u6bb5\u65f6\u95f4\u53ef\u4ee5\u547d\u540d\uff0c\u4ee5\u65b9\u4fbf\u8bb0\u5fc6\uff0c\u4e5f\u53ef\u8df3\u8fc7\u65e0\u987b\u8bb0\u5f55\u7684\u65f6\u95f4\u6bb5\u3002\r\n\r\n## \u5b89\u88c5\u4e0e\u5bfc\u5165\r\n\r\n### \u5b89\u88c5\r\n\r\n```python\r\npip install TimePinner\r\n```\r\n\r\n---\r\n\r\n### \u5bfc\u5165\r\n\r\n```python\r\nfrom TimePinner import Pinner\r\n```\r\n\r\n---\r\n\r\n## \u4f7f\u7528\u65b9\u6cd5\r\n\r\n### \u521b\u5efa\u5bf9\u8c61\r\n\r\n```python\r\nfrom TimePinner import Pinner\r\n\r\npinner = Pinner()\r\n```\r\n\r\n---\r\n\r\n### \u8bb0\u5f55\u65f6\u95f4\u70b9\r\n\r\n\u4f7f\u7528`pin()`\u65b9\u6cd5\u8bb0\u5f55\u4e00\u4e2a\u65f6\u95f4\u70b9\uff0c\u5e76\u8fd4\u56de\u65f6\u95f4\u5dee\uff0c\u53ef\u4ee5\u901a\u8fc7`text`\u53c2\u6570\u7ed9\u8be5\u65f6\u95f4\u70b9\u547d\u540d\u3002\r\n\r\n\u53ef\u7528`show`\u53c2\u6570\u8bbe\u7f6e\u662f\u5426\u6253\u5370\u3002\r\n\r\n\u4e5f\u53ef\u4ee5\u5728\u521b\u5efa\u5bf9\u8c61\u65f6\u7528`show_everytime`\u53c2\u6570\u8bbe\u7f6e\u662f\u5426\u6253\u5370\u3002\r\n\r\n`pin()`\u7684`show`\u53c2\u6570\u6bd4\u521b\u5efa\u5bf9\u8c61\u65f6`show_everytime`\u53c2\u6570\u4f18\u5148\u7ea7\u9ad8\u3002\r\n\r\n\u5982\u679c`all_time`\u53c2\u6570\u4e3a`True`\uff0c\u6253\u5370\u548c\u8fd4\u56de\u7684\u662f\u4e0e\u7b2c\u4e00\u4e2a\u65f6\u95f4\u70b9\u7684\u65f6\u95f4\u5dee\u3002\r\n\r\n```python\r\npinner = Pinner()\r\npinner.pin() # \u8bb0\u5f55\u8d77\u59cb\u70b9\r\nsleep(1)\r\npinner.pin('\u8bb0\u5f551')\r\nsleep(2)\r\npinner.pin('\u8bb0\u5f552', show=False) # \u4e0d\u6253\u5370\u8be5\u8282\u70b9\r\n```\r\n\r\n\u8f93\u51fa\uff1a\r\n\r\n```console\r\n0.0\r\n\u8bb0\u5f551\uff1a1.0084643\r\n```\r\n\r\n---\r\n\r\n### \u8df3\u8fc7\u65f6\u95f4\u6bb5\r\n\r\n\u6709\u4e9b\u65f6\u95f4\u6bb5\u65e0\u987b\u8bb0\u5f55\uff0c\u7528`skip()`\u65b9\u6cd5\u8df3\u8fc7\u3002\u4e0b\u4e00\u4e2a\u8bb0\u5f55\u4f1a\u4ee5\u5f53\u524d\u70b9\u4f5c\u4e3a\u8d77\u59cb\u3002\r\n\r\n```python\r\npinner.skip()\r\n```\r\n\r\n---\r\n\r\n### \u6253\u5370\u7ed3\u679c\r\n\r\n\u901a\u8fc7`show()`\u65b9\u6cd5\uff0c\u53ef\u4ee5\u628a\u8bb0\u5f55\u5230\u7684\u65f6\u95f4\u6bb5\u6253\u5370\u51fa\u6765\u3002\r\n\r\n\u5982\u679c`all_time`\u53c2\u6570\u4e3a`True`\uff0c\u6253\u5370\u51fa\u6765\u7684\u662f\u6bcf\u4e2a\u65f6\u95f4\u70b9\u4e0e\u7b2c\u4e00\u4e2a\u65f6\u95f4\u70b9\u7684\u65f6\u95f4\u5dee\u3002\r\n\r\n```console\r\n\u8bb0\u5f551\uff1a1.007383\r\n\u8bb0\u5f552\uff1a2.0145351000000002\r\n```\r\n\r\n---\r\n\r\n### \u83b7\u53d6\u7ed3\u679c\r\n\r\n\u901a\u8fc7`records()`\u65b9\u6cd5\u83b7\u53d6\u5404\u4e2a\u8bb0\u5f55\u7684\u65f6\u95f4\u6bb5\uff0c\u6bcf\u4e2a\u65f6\u95f4\u6bb5\u4e3a\u4e00\u4e2a\u4e24\u4f4d\u5143\u7ec4\u3002\r\n\r\n\u5982\u679c`all_time`\u53c2\u6570\u4e3a`True`\uff0c\u6253\u5370\u51fa\u6765\u7684\u662f\u6bcf\u4e2a\u65f6\u95f4\u70b9\u4e0e\u7b2c\u4e00\u4e2a\u65f6\u95f4\u70b9\u7684\u65f6\u95f4\u5dee\u3002\r\n\r\n```python\r\nprint(pinner.records())\r\n```\r\n\r\n\u8f93\u51fa\uff1a\r\n\r\n```console\r\n[('\u8bb0\u5f551', 1.0084643), ('\u8bb0\u5f552', 2.0126551999999998)]\r\n```\r\n\r\n---\r\n\r\n### \u83b7\u53d6\u6700\u77ed\u7684\u65f6\u95f4\u6bb5\r\n\r\n\u901a\u8fc7`winner()`\u65b9\u6cd5\u53ef\u4ee5\u83b7\u53d6\u6700\u77ed\u7684\u65f6\u95f4\u6bb5\uff0c\u7528\u4e8e\u5bf9\u6bd4\u51e0\u6bb5\u4ee3\u7801\u8fd0\u884c\u65f6\u95f4\u3002\r\n\r\n\u5982\u679c`all_time`\u53c2\u6570\u4e3a`True`\uff0c\u6253\u5370\u51fa\u6765\u7684\u662f\u6bcf\u4e2a\u65f6\u95f4\u70b9\u4e0e\u7b2c\u4e00\u4e2a\u65f6\u95f4\u70b9\u7684\u65f6\u95f4\u5dee\u3002\r\n\r\n```python\r\nprint(pinner.winner())\r\n```\r\n\r\n\u8f93\u51fa\uff1a\r\n\r\n```console\r\n('\u8bb0\u5f551', 1.0084643)\r\n```\r\n\r\n---\r\n\r\n### \u91cd\u7f6e\r\n\r\n\u4f7f\u7528`reset()`\u65b9\u6cd5\u6e05\u7a7a\u5df2\u6709\u8bb0\u5f55\u5e76\u91cd\u65b0\u5f00\u59cb\u8ba1\u65f6\u3002\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "\u4e00\u4e2a\u7528\u4e8e\u4ee3\u7801\u4e2d\u8ba1\u65f6\u7684\u5c0f\u5de5\u5177\u3002",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://drissionpage.cn/TimePinner"
},
"split_keywords": [
"stopwatch"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a2ae88bd3cb20e737c171563f1bacd6a626f2e7384fdba1e392c24c478e2307f",
"md5": "1c04db30b8b6bfcafaac0c2886d5e3ca",
"sha256": "71e9e3fa1f1ccadfb5ab4c41c0fc48b700d656bd86ed6e28d568b9b0b5625d50"
},
"downloads": -1,
"filename": "timepinner-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1c04db30b8b6bfcafaac0c2886d5e3ca",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 5184,
"upload_time": "2025-11-01T12:20:13",
"upload_time_iso_8601": "2025-11-01T12:20:13.148680Z",
"url": "https://files.pythonhosted.org/packages/a2/ae/88bd3cb20e737c171563f1bacd6a626f2e7384fdba1e392c24c478e2307f/timepinner-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "07a5a3617a6082afac59d0717699d5d26c8a3907d77a2f81fe6a768e690a062e",
"md5": "413c566579242ea04faf91201ed92c15",
"sha256": "178f94e257cce6293ab729bfc6da7c8950c1804118492c18516673dca5eb17a9"
},
"downloads": -1,
"filename": "timepinner-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "413c566579242ea04faf91201ed92c15",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 4516,
"upload_time": "2025-11-01T12:20:15",
"upload_time_iso_8601": "2025-11-01T12:20:15.145428Z",
"url": "https://files.pythonhosted.org/packages/07/a5/a3617a6082afac59d0717699d5d26c8a3907d77a2f81fe6a768e690a062e/timepinner-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-01 12:20:15",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "timepinner"
}