总结day5

json模块中的dumps、loads、dump、load的作用

在Python的json模块中,dumps、loads、dump、load这四个函数的作用如下:

1. dumps函数:将Python对象(如字典、列表等)转换为JSON格式的字符串。这个函数可以用于将Python对象序列化为JSON,以便在网络传输或存储时使用。

2. loads函数:将JSON格式的字符串解码为Python对象。它可以将从网络或文件中读取的JSON数据转换回原始的Python数据类型,使其在代码中可用。

3. dump函数:将Python对象转换为JSON格式的字符串,并将其写入文件中。这个函数类似于dumps函数,不同之处在于它将JSON数据直接写入文件,而不是返回字符串。

4. load函数:从JSON文件中读取数据,并解码为Python对象。它可以将存储在文件中的JSON数据解析为原始的Python数据类型,以便在代码中使用。

这四个函数结合起来,可以方便地在Python中进行JSON数据的编码和解码,实现数据的序列化和反序列化操作。它们在处理API响应、配置文件读写、数据交换等场景中非常有用。

 不定长参数:*args和**kwargs。

*args用于传递不定数量的位置参数(Positional Arguments),它将所有传递给函数的位置参数打包成一个元组(Tuple)。

示例:

def foo(*args):
    for arg in args:
        print(arg)

foo(1, 2, 3)

输出:

1
2
3

在上述示例中,函数foo接受任意数量的位置参数,并使用*args将这些参数打包成一个元组。然后我们可以对这个元组进行迭代并打印每个参数的值。

**kwargs用于传递不定数量的关键字参数(Keyword Arguments),它将所有传递给函数的关键字参数打包成一个字典(Dictionary)。

示例:

def bar(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

bar(name="John", age=30, city="New York")

输出:

name: John
age: 30
city: New York

在上述示例中,函数bar接受任意数量的关键字参数,并使用**kwargs将这些参数打包成一个字典。然后我们可以对这个字典进行迭代并打印每个关键字参数的键和值。

*args**kwargs也可以同时在函数定义中使用,用于接受任意数量的位置参数和关键字参数。

泛型

在Python中,泛型是指通过使用类型变量(Type Variables)来增加代码的灵活性和可重用性,以实现在编译时进行类型检查的特性。

Python的标准库中并没有像其他语言(如Java或C#)一样内置的泛型支持,但是在Python 3.5及以后的版本中引入了对泛型的支持,通过typing模块中的类型提示(Type Hints)来实现类似的功能。

typing模块提供了一系列用于泛型的类和函数,用于标注函数参数、返回值以及变量的类型。下面是一些常用的泛型类型:

  • List[T]: 表示一个元素类型为T的列表。
  • Tuple[T1, T2, …]: 表示一个元素类型依次为T1, T2, …的元组。
  • Dict[K, V]: 表示一个键类型为K,值类型为V的字典。
  • Set[T]: 表示一个元素类型为T的无序不重复集合。
  • Union[T1, T2, …]: 表示一个可能为类型T1, T2, …中的任意类型。
  • Any: 表示任意类型。
  • TypeVar: 用于定义一个泛型类型变量。

短路运算


短路运算是一种逻辑运算中的特性,当计算一个复合逻辑表达式时,如果能够根据已知的部分结果确定整个表达式的结果,就会停止计算剩余的部分。这种操作可以提高代码的效率。在短路运算中,有两种常见的运算符:逻辑与运算符(and)和逻辑或运算符(or)。

逻辑与运算符(and):
在逻辑与运算中,只有当所有操作数都为真(True)时,整个表达式才会为真。如果其中一个操作数为假(False),整个表达式的值就会被确定为假。因此,如果左操作数为假,就没有必要再计算右操作数,直接返回假。
 

python中可调用对象和不可调用对象


可调用对象(Callable Objects)是指可以像函数一样进行调用的对象。在Python中,以下类型的对象都是可调用对象:

函数(Function):包括内置函数和自定义函数。
类(Class):通过调用类来创建对象时,默认会调用类的构造方法(__init__)。
方法(Method):在类中定义的函数,可以通过类实例来调用。
类的实例(Instance):如果类定义了__call__方法,实例就可以被调用。
不可调用对象(Non-callable Objects)是指不具备调用能力的对象。通常它们是表示数据、状态或其他非函数性质的对象。例如,整数、字符串、列表等基本数据类型对象就是不可调用对象。我们不能像函数一样将它们调用执行。

super()方法


super是一个内置函数,用于调用父类(超类)的方法。在类的继承关系中,子类可以通过super()函数调用父类的方法,以实现代码重用和拓展。super函数的常见用法是在子类的方法中调用父类的同名方法。调用父类方法的语法是super().父类方法名()

猜你喜欢

转载自blog.csdn.net/NOguang/article/details/131972496