python__name__属性的使用注意
使用注意1、__name__ 属性可以做到,测试模块的代码 只在测试情况下被运行,而在被导入时不会被执行。2、__name__ 是Python的一个内置属性,记录着一个字符串。如果是被其他文件导入的,__name__ 就是 模块名。如果是当前执行的程序 __name__ 是 __main__。实例# 导入模块# 定义全局变量# 定义类# ...
2024-01-10python模块的搜索顺序分析
说明1、Python 的解释器在导入模块时,会搜索当前目录指定模块名的文件,如果有就直接导入。2、如果没有,再搜索系统目录。在开发时,给文件起名,不要和系统的模块文件重名。3、Python中每一个模块都有一个内置属性 __file__ 可以查看模块的完整路径。实例import random # 生成一个 0~10 的数字ra...
2024-01-10python异常的传递
说明1、当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方。2、如果传递到主程序,仍然没有异常处理,程序才会被终止。实例def demo1(): return int(input("请输入一个整数:")) def demo2(): return demo1() try: print(demo2())except ValueError: print("请输入正确的整数")except...
2024-01-10python抛出raise异常的注意点
注意点1、系统的自带的异常只要触发会自动抛出,但用户自定义的异常需要用户自己决定什么时候抛出。2、raise唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类。(也就是 Exception 的子类)。大多数的异常的名字都以"Error"结尾,所以实际命名时尽量跟标准的异常命名...
2024-01-10python错误类型捕获的方法
说明1、遇到不同类型的异常,需要针对不同类型的异常,做出不同的响应,这时需要捕获错误类型。2、当Python解释器抛出异常时,最后一行错误信息的第一个单词,就是错误类型。实例try: num = int(input("请输入整数:")) result = 8 / num print(result)except ValueError: print("请输入正...
2024-01-10python如何解决初始化执行次数
解决方法1、定义一个类属性init_flag标记是否 执行过初始化动作,初始值为False。2、判断init_flag,False执行初始化。然后将 init_flag设置为True。3、再次自动调用 __init__ 方法。初始化动作就不会被再次执行 了实例class MusicPlayer(object): # 记录第一个被创建对象的引用 instance = None #...
2024-01-10python中__new__的重写
说明1、重写__new__方法一定要return super().__new__(cls)。2、Python的解释器得不到分配了空间的对象引用,就不会调用对象的初始化方法。注意:__new__ 是一个静态方法,在调用时需要 主动传递 cls 参数实例class MusicPlayer(object): def __new__(cls, *args, **kwargs): # 如果不返回任何结果, ...
2024-01-10js引用计数算法是什么
说明1、引用计数算法定义内存不再使用的标准很简单,就是看一个对象是否有指向它的引用。2、如果没有其他对象指向它了,说明该对象已经不再需要了。实例// 创建一个对象person,他有两个指向属性age和name的引用var person = { age: 12, name: 'aaaa'}; person.name = null; // 虽然设置为null...
2024-01-10js如何实现类型判断
1、判断引用类型和基本类型的类型是不同的,判断基本类型可以用typeof:typeof 1 // 'number'typeof '1' // 'string'typeof undefined // 'undefined'typeof true // 'boolean'typeof Symbol() // 'symbol'typeof null // 'object'2、typeof对引用类型,除了函数返回function,其他都返回object。但我们开发中数组肯定是要返回array类...
2024-01-10js中六种基本数据类型
1、number类型值包括整数、浮点数、NaN、Infinity等。其中NaN类型是js中唯一不等于自身的类型,当发生未定义的数学操作的时候,就会返回NaN,如:1 * 'asdf'、Number('asdf')。浮点数的运算可能会出现如0.1 + 0.2 !== 0.3的问题,这是由于浮点运算的精度的问题,一般采用toFixed(10)便可以解决此类问题。2、boolean、s...
2024-01-10