首页 > 编程语言 >python小知识

python小知识

时间:2023-07-21 12:11:32浏览次数:41  
标签:name get python self 知识 opts print def

前言

一些小知识

正文

format格式化的转义

 将 abc_{i}_{j} 转换为 abc_1_2

展开代码
s = 'abc_{i}_{j}'
n = {'i': 1, 'j': 2}

print(s.format_map(n))

print(s.format(**n))

for k, v in n.items():
    s = s.replace(f'{{{k}}}', f'{v}')
print(s)

命令行

 命令行的使用:python filename.py -y 2021 -m 04

展开代码
import getopt
import sys

year = 2021
month = 1

opts, args = getopt.getopt(
    sys.argv[1:],
    "y:m:",
    ["year=", "month="],
)
opts = dict(opts)
if opts.get("-y"):
    year = int(opts.get("-y"))
elif opts.get("--year"):
    year = int(opts.get("--year"))
if opts.get("-m"):
    month = int(opts.get("-m"))
elif opts.get("--month"):
    month = int(opts.get("--month"))

print(year, month)

字典转换为对象

展开代码
class Obj(dict):

    def __init__(self, name):
        self.__name = name if name is not None else 'obj'
        super().__init__()

    def __repr__(self):
        return self.__name

    def __getitem__(self, key):
        return self.__dict__.get(key)

    def get(self, attr, default=None):
        return self.__dict__.get(attr, default)


def dict_to_obj(data: dict, name: str = 'obj'):
    obj = Obj(name)
    for k, v in data.items():
        setattr(obj, k, v)
    return obj


data = {'a': 1, 'b': 2}
test_obj = dict_to_obj(data)

对象方法装饰器

 将对象的方法变为装饰器,如:flask框架的路由注册

展开代码
from typing import Callable


class Demo:

    def __init__(self, name=None):
        self.name = name if name is not None else 'Demo'

    def __demo(self, method: str):
        def decorator(func):
            print(f'{self.name} [{method}]')
            return func
        return decorator

    def get(self) -> Callable:
        return self.__demo('GET')

    def post(self) -> Callable:
        return self.__demo('POST')


demo = Demo()


@demo.get()
def test_get(data='d'):
    print(data)
    pass

二维数组的排列组合

展开代码
import itertools

data = [
    ['1-1', '1-2', '1-3'],
    ['2-1', '2-2', '2-3', '2-4'],
    ['3-1', '3-2'],
]

result = list(itertools.product(*data))
print(result)

字母迭代

展开代码
letters = [chr(x) for x in range(ord('A'), ord('Z') + 1)]
print(letters)

pass与...

  • pass: 当作一个无意义的代码块,如:定义函数时,还没想好函数体的内容,可使用 pass 代替
  • ...: 代码省略。是一个 Ellipsis 对象,单例
展开代码
def func():
    pass


# 类型提示中的省略
def func(args: ...):
    print(args)

# 函数内部的省略,相当于pass
def func():
    ...

# numpy中的索引省略
import numpy as np

arr = np.random.random((2, 2, 2))
print(arr)
print(arr[..., 0, 0])   # 放在前面,省略前面的索引;放在后面,省略后面的索引

函数形参中的 *

 用于分隔位置参数和关键字参数。
 它表示从此处开始,后面的参数只能通过关键字方式传递,不能通过位置方式传递。具体来说,当在函数定义中使用 * 时,它之前的参数是位置参数(可以按位置传递值),而之后的参数是关键字参数(必须使用关键字传递值)。

展开代码
# 函数定义中的 * 表示从此处开始后面的参数只能使用关键字传递
def demo(a, *, b, c):
    print("a:", a)
    print("b:", b)
    print("c:", c)

# 调用函数时,必须按照位置参数和关键字参数的方式传递
demo(1, b=2, c=3)

标签:name,get,python,self,知识,opts,print,def
From: https://www.cnblogs.com/FevolQ/p/17570955.html

相关文章

  • python添加让输入框清空的按钮
    如何在Python中添加让输入框清空的按钮概述在Python中,可以通过使用Tkinter库来创建GUI应用程序。本文将指导你如何在Python中添加一个按钮,用于清空一个输入框中的内容。我们将使用Tkinter库中的Entry和Button组件,以及相应的事件处理函数来实现这个功能。步骤下面是实现该功能的......
  • python怎么添加动态成员
    项目方案:动态成员管理系统背景介绍在软件开发过程中,有时候需要在运行时为对象添加新的属性或方法,以适应不同的业务需求。Python作为一种动态语言,提供了灵活的方式来实现动态成员的添加。本项目旨在实现一个动态成员管理系统,能够方便地动态添加、修改和删除对象的成员,以满足不同的......
  • python算法的时间复杂度怎么算
    项目方案:计算列表中元素的平方和1.项目背景在很多应用中,我们需要对一个列表中的元素进行一些计算操作。例如,计算一个列表中所有元素的平方和。这个项目方案就是要实现这样的功能。2.问题定义给定一个列表nums,计算列表中所有元素的平方和。即,对于列表中的每个元素num,计算nu......
  • python怎么输出三个数一行
    Python如何输出三个数一行在Python中,要将三个数一行输出,可以使用print函数来实现。方法一:使用字符串格式化我们可以使用字符串的格式化功能将三个数格式化为一个字符串,然后使用print函数输出这个字符串。num1=1num2=2num3=3output="{}{}{}".format(num1,num2,n......
  • Python文件操作
    Python文件操作一、文件的编码1.1背景thinking:计算机只能识别:0和1,那么我们丰富的文本文件是如何被计算机识别,并存储在硬盘中呢?answer:使用编码技术(密码本)将内容翻译成0和1存入。编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容。计算机......
  • python+mysql
    目录MySQL安装&初始化&连接mysql安装mysql初始化mysql启动测试连接mysql密码设置数据库管理内置客户端操作python代码操作MySQL安装&初始化&连接mysql安装mysql主要为5和8两个版本,下载地址下载形式为压缩包的格式,解压即用mysql初始化需要预先指定一个配置文件,后缀......
  • vscode python代码提示
    VSCodePython代码提示简介VSCode(VisualStudioCode)是一款轻量级的代码编辑器,具有丰富的扩展功能。通过安装Python扩展,可以在VSCode中进行Python开发,并享受强大的代码提示功能。本文将介绍如何在VSCode中使用Python代码提示。安装Python插件在开始使用Python代码提示之前,......
  • python可视化库seaborn
    1,它也是一个可视化库,对matplotlib进行了二次封装。比起pyplot它的接口更加集成,对numpy\pandas支持良好。可以设置图片风格style。seaborn与matplotlib的关系是互为补充而非替代:多数场合中seaborn是绘图首选,而在某些特定场景下则仍需用matplotlib进行更为细致的个性化定制。2,sns的风......
  • Python爬虫超详细讲解(零基础入门,老年人都看的懂)
    本文已收录至Github,推荐阅读......
  • 电子书下载 免费pdf Python编程从入门到实践 第2版
    电子书下载-Python编程从入门到实践第2版简介Python是一种简单易学的编程语言,广泛应用于数据分析、人工智能、Web开发等领域。《Python编程从入门到实践》是一本非常受欢迎的Python入门教程。本文将介绍如何下载免费的PDF版本的第2版《Python编程从入门到实践》电子书,并提供一......