Python自学 - 函数初步(内置函数、模块函数、自定义函数)
1 Python自学 - 函数初步(内置函数、模块函数、自定义函数)
1.1 内置函数
几乎所有的编程都会提供一些内置函数,以便完成一些最基本的任务,Python提供了丰富的内置函数,熟悉内置函数可以给工作带来极大便利。
Python官方的内置函数介绍网址:Python内置函数。
1.1.1 数学函数
abs():
abs(x),返回一个数字的绝对值。 参数可以是整数、浮点数或任何实现了 abs() 的对象。 如果参数是一个复数,则返回它的模。divmod():
divmod(a, b),接受两个(非复数)数字作为参数并返回由当对其使用整数除法时的商和余数组成的数字对。hash():
hash(object),返回该对象的哈希值(如果它有的话)。pow():
pow(base, exp, mod=None), 返回 base 的 exp 次幂round():
round(number, ndigits=None),返回 number 舍入到小数点后 ndigits 位精度的值。
1.1.2 字符串函数
ascii():
ascii(object),与 repr() 类似,返回一个包含对象的可打印表示形式的字符串,但是使用 \x、\u 和 \U 对 repr() 返回的字符串中非 ASCII 编码的字符进行转义。chr():
chr(i),返回 Unicode 码位为整数 i 的字符的字符串格式。format():
format(value, format_spec=''),将 value 转换为“格式化后”的形式,格式由 format_spec 进行控制。ord():
ord(c),对表示单个 Unicode 字符的字符串,返回代表它 Unicode 码点的整数。repr():
repr(object),返回包含一个对象的可打印表示形式的字符串。str():
class str(object='')
class str(object=b'', encoding='utf-8', errors='strict'),返回一个 str 版本的 object
1.1.3 统计函数
len():
len(s),返回对象的长度(元素个数)。max():
max(iterable, *, key=None)
max(iterable, *, default, key=None)
max(arg1, arg2, *args, key=None)
返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。min():
min(iterable, *, key=None)
min(iterable, *, default, key=None)
min(arg1, arg2, *args, key=None), 返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。sum():
sum(iterable, /, start=0),从 start 开始自左向右对 iterable 的项求和并返回总计值。 iterable 的项通常为数字,而 start 值则不允许为字符串。
1.1.4 迭代函数
aiter():
aiter(async_iterable),返回 asynchronous iterable 的 asynchronous iterator 。相当于调用 x.aiter()。all():
all(iterable),如果 iterable 的所有元素均为真值(或可迭代对象为空)则返回 True 。anext():
awaitable anext(async_iterator)
awaitable anext(async_iterator, default), 当进入 await 状态时,从给定 asynchronous iterator 返回下一数据项,迭代完毕则返回 default。any():
any(iterable),如果 iterable 的任一元素为真值则返回 True。 如果可迭代对象为空,返回 False。enumerate():
enumerate(iterable, start=0),返回一个枚举对象。iterable 必须是一个序列,或 iterator,或其他支持迭代的对象。filter():
filter(function, iterable),使用 iterable 中 function 返回真值的元素构造一个迭代器。 iterable 可以是一个序列,一个支持迭代的容器或者一个迭代器。iter():
iter(object)
iter(object, sentinel),返回一个 iterator 对象。 根据是否存在第二个参数,对第一个参数的解读会有很大的不同。 如果没有第二个参数,object 必须是一个支持 iterable 协议 (有 iter() 方法) 的多项集对象,或者必须支持序列协议 (有 getitem() 方法并使用从 0 开始的整数参数)。map():
map(function, iterable, *iterables),返回一个将 function 应用于 iterable 的每一项,并产生其结果的迭代器。 如果传入了额外的 iterables 参数,则 function 必须接受相同个数的参数并被用于到从所有可迭代对象中并行获取的项。next():
next(iterator)
next(iterator, default),通过调用 iterator 的 next() 方法获取下一个元素。如果迭代器耗尽,则返回给定的 default,如果没有默认值则触发 StopIteration。range():
class range(stop)
class range(start, stop, step=1),虽然被称为函数,但 range 实际上是一个不可变的序列类型
1.1.5 类型函数
bin():
bin(x),将一个整数转换为带前缀 “0b” 的二进制数字符串。bool():
class bool(object=False, /),返回布尔值,即 True 或 False 中的一个。bytearray():
class bytearray(source=b'')
class bytearray(source, encoding)
class bytearray(source, encoding, errors),返回一个新的 bytes 数组。 bytearray 类是一个可变序列,包含范围为 0 <= x < 256 的整数。bytes():
class bytes(source=b'')
class bytes(source, encoding)
class bytes(source, encoding, errors),返回一个新的“bytes”对象,这是一个不可变序列,包含范围为 0 <= x < 256 的整数。complex():
class complex(number=0, /)
class complex(string, /)
class complex(real=0, imag=0),将特定的字符串或数字转换为一个复数,或基于特定的实部和虚部创建一个复数。dict():
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg),创建一个新的字典。dict 对象是一个字典类。float():
class float(number=0.0, /)
class float(string, /),返回基于一个数字或字符串构建的浮点数。frozenset():
class frozenset(iterable=set()),返回一个新的 frozenset 对象,它包含可选参数 iterable 中的元素。hex():
hex(x),将整数转换为带前缀 “0x” 前缀的小写十六进制数字符串。int():
class int(number=0, /)
class int(string, /, base=10),返回从一个数字或字符串构建的整数对象,或者如果未给出参数则返回 0。list():
class list
class list(iterable),虽然被称为函数,list 实际上是一种可变序列类型oct():
oct(x),将整数转换为带前缀 “0o” 的八进制数字符串。set():
class set、class set(iterable),返回一个新的 set 对象,可以选择带有从 iterable 获取的元素。tuple():
class tuple、class tuple(iterable),虽然被称为函数,但 tuple 实际上是一个不可变的序列类型
1.1.6 输入输出
input():
input()、input(prompt),如果存在 prompt 实参,则将其写入标准输出,末尾不带换行符。接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。当读取到 EOF 时,则触发 EOFError。open():
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None),打开 file 并返回对应的 file object。 如果该文件不能被打开,则引发 OSError。print():
print(*objects, sep=' ', end='\n', file=None, flush=False),将 objects 打印输出至 file 指定的文本流,以 sep 分隔并在末尾加上 end。 sep 、 end 、 file 和 flush 必须以关键字参数的形式给出。
1.1.7 类与对象函数
classmethod():
@classmethod,把一个方法封装成类方法。delattr():
delattr(object, name),这是 setattr() 的相关函数。 其参数是一个对象和一个字符串。 其中字符串必须是对象的某个属性的名称。getattr():
getattr(object, name)
getattr(object, name, default),object 中指定名称的属性的值。 name 必须是字符串。 如果该字符串是对象的某一属性的名称,则结果将为该属性的值。hasattr():
hasattr(object, name),该实参是一个对象和一个字符串。如果字符串是对象的属性之一的名称,则返回 True,否则返回 False。isinstance():
isinstance(object, classinfo),如果 object 参数是 classinfo 参数的实例,或者是其 (直接、间接或 虚拟) 子类的实例则返回 True。 如果 object 不是给定类型的对象,则该函数总是返回 False。issubclass():
issubclass(class, classinfo),如果 class 是 classinfo 的子类(直接、间接或 虚的 ),则返回 True。类将视为自己的子类。classinfo 可为类对象的元组(或递归地,其他这样的元组)或 union 类型,这时如果 class 是 classinfo 中任何条目的子类,则返回 True 。memoryview():
class memoryview(object),返回由给定实参创建的“内存视图”对象。object():
class object,这是所有其他类的终极基类。 它提供了所有 Python 类实例均具有的方法。 当其构造器被调用时,它将返回一个新的基本对象。 该构造器不接受任何参数。property():
class property(fget=None, fset=None, fdel=None, doc=None),返回 property 属性。fget 是获取属性值的函数。 fset 是用于设置属性值的函数。 fdel 是用于删除属性值的函数。并且 doc 为属性对象创建文档字符串。reversed():
reversed(seq),返回一个反向的 iterator。setattr():
setattr(object, name, value),本函数与 getattr() 相对应。其参数为一个对象、一个字符串和一个任意值。slice():
class slice(stop)
class slice(start, stop, step=None),返回一个表示由 range(start, stop, step) 指定的索引集的 slice 对象。 start 和 step 参数默认为 None。sorted():
sorted(iterable, /, *, key=None, reverse=False),根据 iterable 中的项返回一个新的已排序列表。staticmethod():
@staticmethod,将方法转换为静态方法。super():
class super
class super(type, object_or_type=None),返回一个代理对象,它会将方法调用委托给 type 的父类或兄弟类。 这对于访问已在类中被重写的继承方法很有用。type():
class type(object)
class type(name, bases, dict, **kwds),传入一个参数时,返回 object 的类型。 返回值是一个 type 对象并且通常与 object.class 所返回的对象相同。推荐使用 isinstance() 内置函数来检测对象的类型,因为它会考虑子类的情况。zip():
zip(*iterables, strict=False),在多个迭代器上并行迭代,从每个迭代器返回一个数据项组成元组。
1.1.8 其他函数
breakpoint():
breakpoint(*args, **kws),此函数会在调用位置进入调试器。callable():
callable(object),如果 object 参数是可调用的则返回 True,否则返回 False。 如果返回 True,调用仍可能失败,但如果返回 False,则调用 object 肯定不会成功。compile():
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1),将 source 编译成代码或 AST 对象。代码对象可以被 exec() 或 eval() 执行。source 可以是常规的字符串、字节字符串,或者 AST 对象。参见 ast 模块的文档了解如何使用 AST 对象。dir():
dir()
dir(object),如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表。eval():
eval(source, /, globals=None, locals=None),expression 参数将作为一个 Python 表达式 (从技术上说,是一个条件列表) 使用 globals 和 locals 映射作为全局和局部命名空间被解析并求值。exec():
exec(source, /, globals=None, locals=None, *, closure=None),这个函数支持动态执行 Python 代码。 source 必须是字符串或代码对象。 如果是字符串,那么该字符串将被解析为一组 Python 语句并随即被执行(除非发生语法错误)。globals():
globals(),返回实现当前模块命名空间的字典。对于函数内的代码,这是在定义函数时设置的,无论函数在哪里被调用都保持不变。help():
help()
help(request),启动内置的帮助系统(此函数主要在交互式中使用)。如果没有实参,解释器控制台里会启动交互式帮助系统。如果实参是一个字符串,则在模块、函数、类、方法、关键字或文档主题中搜索该字符串,并在控制台上打印帮助信息。如果实参是其他任意对象,则会生成该对象的帮助页。id():
id(object),返回对象的“标识值”。该值是一个整数,在此对象的生命周期中保证是唯一且恒定的。两个生命期不重叠的对象可能具有相同的 id() 值。locals():
locals(),返回一个代表当前局部符号表的映射对象,以变量名称作为键,而以其当前绑定的引用作为值。vars():
vars()
vars(object)返回模块、类、实例或任何其他具有 dict 属性的对象的 dict 属性。__import__():
__import__(name, globals=None, locals=None, fromlist=(), level=0),与 importlib.import_module() 不同,这是一个日常 Python 编程中不需要用到的高级函数。
以上函数基于Python 3.13,后续版本更新可能会有内置函数的更新,请随时参数官方文档。
1.2 库函数(模块)
内置函数能解决的工作场景非常有限,那么怎么办呢, 类似于其他语言,比如:C/C++,会有include xxx语句引入其他库,库可以是官方也可以是第3方提供,通过库函数解决的任务场景将大大提高,不需要工程师从头开始写代码,极大的提高了工作效率。
如果要查看当前支持哪些库,可以执行如下的代码:
print(help("modules"))
笔者本地的输出:
Please wait a moment while I gather a list of all available modules...test_sqlite3: testing with SQLite version 3.45.3
__future__ _strptime filecmp rlcompleter
__hello__ _struct fileinput runpy
__phello__ _symtable fnmatch sched
_abc _sysconfig fractions secrets
_aix_support _testbuffer ftplib select
_android_support _testcapi functools selectors
_ast _testclinic gc shelve
_asyncio _testclinic_limited genericpath shlex
_bisect _testconsole getopt shutil
_blake2 _testimportmultiple getpass signal
_bz2 _testinternalcapi gettext site
_codecs _testlimitedcapi glob smtplib
_codecs_cn _testmultiphase graphlib socket
_codecs_hk _testsinglephase gzip socketserver
_codecs_iso2022 _thread hashlib sqlite3
_codecs_jp _threading_local heapq sre_compile
_codecs_kr _tkinter hmac sre_constants
_codecs_tw _tokenize html sre_parse
_collections _tracemalloc http ssl
_collections_abc _typing idlelib stat
_colorize _uuid imaplib statistics
_compat_pickle _warnings importlib string
_compression _weakref inspect stringprep
_contextvars _weakrefset io struct
_csv _winapi ipaddress subprocess
_ctypes _wmi itertools symtable
_ctypes_test _zoneinfo json sys
_datetime abc keyword sysconfig
_decimal antigravity linecache tabnanny
_elementtree argparse locale tarfile
_functools array logging tempfile
_hashlib ast lzma test
_heapq asyncio mailbox textwrap
_imp atexit marshal this
_interpchannels base64 math threading
_interpqueues bdb mimetypes time
_interpreters binascii mmap timeit
_io bisect modulefinder tkinter
_ios_support builtins msvcrt token
_json bz2 multiprocessing tokenize
_locale cProfile netrc tomllib
_lsprof calendar nt trace
_lzma cmath ntpath traceback
_markupbase cmd nturl2path tracemalloc
_md5 code numbers tty
_multibytecodec codecs opcode turtle
_multiprocessing codeop operator turtledemo
_opcode collections optparse types
_opcode_metadata colorsys os typing
_operator compileall pathlib unicodedata
_osx_support concurrent pdb unittest
_overlapped configparser pickle urllib
_pickle contextlib pickletools uuid
_py_abc contextvars pip venv
_pydatetime copy pkgutil warnings
_pydecimal copyreg platform wave
_pyio csv plistlib weakref
_pylong ctypes poplib webbrowser
_pyrepl curses posixpath winreg
_queue dataclasses pprint winsound
_random datetime profile wsgiref
_sha1 dbm pstats xml
_sha2 decimal pty xmlrpc
_sha3 difflib py_compile xxsubtype
_signal dis pyclbr zipapp
_sitebuiltins doctest pydoc zipfile
_socket easygui pydoc_data zipimport
_sqlite3 email pyexpat zlib
_sre encodings queue zoneinfo
_ssl ensurepip quopri 无标题2
_stat enum random
_statistics errno re
_string faulthandler reprlib Enter any module name to get more help. Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".None
🕮说明:每个模块的具体用法,请参考Python官网或模块的官网,如果查看简短的帮助,可以在Python中执行:print(help("easygui"))语句。
1.3 自定义函数
自定义函数的语法格式如下:
def func_name([params]): #可以没有参数干活语句return 返回值 #可以没有返回
- 示例1:返回两数中的较大者
import easygui as eg flds = ['参数1', '参数2'] #配置界面上显示两个参数 defs = ['11', '101'] #两个参数设置默认参数 ipt1, ipt2 = [int(x) for x in eg.multenterbox("请输入两数字:", "输入", flds, defs)]# --------------------------------------------------------------------------- # @fn 返回两者中的大值 # @param[in] para1: 参数1,数字 # @param[in] para2: 参数2,数字 # @return 返回较大者,数字 # @author tyysoft # @date 2025-00-04 13:37:40 # @code py # my_max(1,2) # @encode # --------------------------------------------------------------------------- def my_max(para1, para2):if para1 >= para2:return para1else:return para2print(f'数字:{ipt1}, {ipt2}中较大的是:{my_max(ipt1, ipt2)}') #输出:数字:11, 101中较大的是:101
1.3.1 默认参数
许多内置函数或库函数都带有默认参数,使用默认参数可以让函数的调用更简单,用户不需要每个参数都赋值,减轻工作量,提高效率,那么在自定义函数中,如何给参数设置默认值呢?
def print_list(length = 10):l = [x for x in range(length)]print(l)print_list()
#输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
示例2:两个参数,其中一个参数带默认值
def print_list(step, length = 10):l = [x for x in range(0, length, step)]print(l)print_list(2)
#输出:[0, 2, 4, 6, 8]
🕮说明:一般要求带默认值的参数在参数列表的右侧!
1.3.2 参数收集器
函数定义时,如果参数名前带*号,表示该参数是收集器,即,函数在调用时,如果输入多个参数,将由这个收集器接收到一个元组中。
1.3.2.1 普通参数收集器
- 示例1:只有一个接收器参数
def func_1(*args):print(f'接收到的参数:{args}')func_1(1, 2, 'string')
#输出:接收到的参数:(1, 2, 'string')
- 示例2:1个普通参数加1个接收器参数
def func_1(arg1, *others):print(f'参数1:{arg1}, 其他参数: {others}')func_1(1, 2, 'string')
#输出:参数1:1, 其他参数: (2, 'string')
1.3.2.2 关键词参数收集器
如果用户稍加留意,部分函数在调用时,会输入参数名和参数值,比如:
#方法1:直接按顺序填写参数
c1 = complex(3.3, 6)
print(f'c1: {c1}')
#方法2:使用参数名输入参数
c2 = complex(imag =6, real = 3.3) #打乱了参数顺序
print(f'c2: {c2}')
在函数定义时使用关键词收集器:
def func_1(**args):print(f'输出参数:{args}')func_1(name='小西瓜', sex='男', age=22)
#输出:输出参数:{'name': '小西瓜', 'sex': '男', 'age': 22}
注:如果函数调用时不指定参数名,则抛出异常:TypeError
1.3.3 传值还是传引用
在C/C++语言中,存在传递参数副本(传值)和传递参数地址(传引用),传值的方式可以保护参数,即在函数体内对参数修改,函数外部也不会改变,而传引用,在函数体内修改后,函数外部也会改变。
-
示例1:传值,参数不会被函数修改
int_var = 10 float_var = 3.14 str_var = 'python' tup_var = (12, 13) def change_var(int_var, float_var, str_var, tup_var):int_var += 1float_var += 1str_var += ' tutorial'tup_var = (1,2,3,4)print(f'in function: int: {int_var}, float:{float_var}, str:{str_var}, tuple: {tup_var}')#输出:in function: int: 11, float:4.140000000000001, str:python tutorial, tuple: (1, 2, 3, 4) change_var(int_var, float_var, str_var, tup_var) print(f'out of function: int: {int_var}, float:{float_var}, str:{str_var}, tuple: {tup_var}') #输出:out of function: int: 10, float:3.14, str:python, tuple: (12, 13) 参数没有被函数修改! -
示例2:传引用,参数被函数修改
list_var = [1,2,3] dict_var = {"x":1, "y":2} set_var = {1,2,3} def change_var(list_var, dict_var, set_var):list_var.append(4)dict_var.update(z=3)set_var.add(4)print(f'in function: list: {list_var}, dict: {dict_var}, set: {set_var}')#输出:in function: list: [1, 2, 3, 4], dict: {'x': 1, 'y': 2, 'z': 3}, set: {1, 2, 3, 4} change_var(list_var, dict_var, set_var) print(f'out of function: list: {list_var}, dict: {dict_var}, set: {set_var}') #输出:out of function: list: [1, 2, 3, 4], dict: {'x': 1, 'y': 2, 'z': 3}, set: {1, 2, 3, 4}
1.3.3.1 总结
- 普通数据类型(
整型、浮点型、字符串、元组),做函数参数时,使用传值方式(函数体内不被修改)。 - 复杂数据类型(
列表、字典、集合),做函数参数时,使用传引用方式(在函数体内会被修改)。
作者声明:本文用于记录和分享作者的学习心得,水平有限,难免存在表达错误,欢迎交流和指教!
Copyright © 2022~2024 All rights reserved.
相关文章:
Python自学 - 函数初步(内置函数、模块函数、自定义函数)
1 Python自学 - 函数初步(内置函数、模块函数、自定义函数) 1.1 内置函数 几乎所有的编程都会提供一些内置函数,以便完成一些最基本的任务,Python提供了丰富的内置函数,熟悉内置函数可以给工作带来极大便利。 Python官方的内置函数介绍网…...
【生活】冬天如何选口罩(医用口罩,N95, KN95还是KP95?带不带呼吸阀门?带不带活性炭?)
💡总结一下就是: 日常防护的话,医用口罩就可以啦。要是想长时间佩戴N95(KN95)口罩的话也可以. 在高风险环境(像医院、疫情防控期间),一定要选不带呼吸阀门的N95口罩KN95)…...
HTML5新特性|01 音频视频
音频 1、Audio (音频) HTML5提供了播放音频文件的标准 2、control(控制器) control 属性供添加播放、暂停和音量控件 3、标签: <audio> 定义声音 <source> 规定多媒体资源,可以是多个<!DOCTYPE html> <html lang"en"> <head><…...
迅为RK3568开发板编译Android12源码包-设置屏幕配置
在源码编译之前首先要确定自己想要使用的屏幕并修改源码,在编译镜像,烧写镜像。如下图所示: 第一步:确定要使用的屏幕种类,屏幕种类选择如下所示: iTOP-3568 开发板支持以下种类屏幕: 迅为 LV…...
力扣hot100——图论
200. 岛屿数量 class Solution { public:int numIslands(vector<vector<char>>& grid) {int ans 0;vector<int> dx { 0, 1, 0, -1 };vector<int> dy { 1, 0, -1, 0 };int n grid.size(), m grid[0].size();vector<vector<int>> …...
Docker- Unable to find image “hello-world“locally
Docker- Unable to find image “hello-world“locally 文章目录 Docker- Unable to find image “hello-world“locally问题描述一. 切换镜像1. 编辑镜像源2. 切换镜像内容 二、 检查设置1、 重启dockers2、 检查配置是否生效3. Docker镜像源检查4. Dokcer执行测试 三、自定义…...
spring-boot启动源码分析(二)之SpringApplicationRunListener
在上一篇《spring-boot启动源码分析(一)之SpringApplication实例构造》后,继续看了一个月的Spring boot启动源码,初步把流程看完了,接下来会不断输出总结,以巩固这段时间的学习。同时也希望能帮到同样感兴趣…...
ELK入门教程(超详细)
什么是ELK? ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称(后来出现的filebeat属于beats家族中的一员,可以用来替代logstash的数据收集功能,比较轻量级),也被称为Elastic Stack。 Filebeat Filebeat是用于转…...
人工智能知识分享第六天-机器学习_逻辑回归(Logistic Regression)
简介 在机器学习中,分类问题是一种常见的任务,目标是根据输入特征将数据点分配到不同的类别中。为了实现分类,我们需要训练一个分类器,该分类器能够根据输入数据的特征进行预测。 逻辑回归(Logistic Regression&…...
基于Springboot + vue实现的校园周边美食探索及分享平台
🥂(❁◡❁)您的点赞👍➕评论📝➕收藏⭐是作者创作的最大动力🤞 💖📕🎉🔥 支持我:点赞👍收藏⭐️留言📝欢迎留言讨论 🔥🔥&…...
初学STM32 --- 外部SRAM
目录 SRAM简介 SRAM特性: XM8A51216 功能框图 8080并口读时序编辑 8080并口写时序 SRAM 读写操作步骤 FSMC介绍 FSMC时序介绍 FSMC控制器对内核地址映射编辑 FSMC HAL库相关驱动 SRAM驱动步骤 SRAM简介 静态随机存取存储器(Static Random-Access Memory&am…...
创龙3588——debian根文件系统制作
文章目录 build.sh debian 执行流程build.sh源码流程 30-rootfs.sh源码流程 mk-rootfs-bullseys.sh源码流程 mk-sysroot.sh源码流程 mk-image.sh源码流程 post-build.sh 大致流程系统制作步骤 build.sh debian 执行流程 build.sh 源码 run_hooks() {DIR"$1"shiftf…...
javacript中function (res) {}与箭头函数表达式(res) =>{}的区别
javacript中function (res) {}与(res) >{}的区别 function (res) {} 代码演示 let shape {name:长方形,say:function(){console.log(我是this.name)setTimeout(function(){console.log(3秒后输出我是: this.name); //this.name为undefined}, 3000)} }shape.sa…...
kylin安装docker
1. 前言 本文详细介绍如何在kylin v10上安装docker。系统环境如下: dockder: 20.10.7 linux os: kylinv 10 (GFB) linux kernel: 4.19.90-52.23.v2207.gfb01.ky10.aarch642. 安装docker 2.1. 下载docker二进制包 wget https://mirror.nju.edu.cn…...
【Yarn】通过JMX采集yarn相关指标的Flink任务核心逻辑
通过JMX采集yarn相关指标的Flink任务核心逻辑 文章目录 通过JMX采集yarn相关指标的Flink任务核心逻辑通过jmx接口查询Yarn队列指标请求JMX配置项核心处理流程输出到kafka格式通过jmx接口查询ResourceManager核心指标请求JMX读取配置yaml配置文件核心处理逻辑输出Kafka格式彩蛋 …...
鸿蒙HarmonyOS开发:基于Swiper组件和自定义指示器实现多图片进度条轮播功能
文章目录 一、概述1、场景介绍2、技术选型 二、实现方案1、图片区域实现2、底部导航点设计3、手动切换 三、所有代码1、设置沉浸式2、外层Tabs效果3、ImageSwiper组件 四、效果展示 一、概述 在短视频平台上,经常可以见到多图片合集。它的特点是:由多张…...
Excel 身份证号计算年龄
1. 设置身份证号列格式 复制身份证列值到记事本或其他地方重新设置身份证号列单元格格式为“文本”将复制出去的身份证号重新复制粘贴回来 2. 年龄列单元格中添加公式 DATEDIF(DATE(LEFT(MID(A2, 7, 8), 4), MID(MID(A2, 7, 8), 5, 2), RIGHT(MID(A2, 7, 8), 2)), TODAY(), …...
【2024年-6月-14日-开源社区openEuler实践记录】探索 test - tools:高效测试的开源宝库
开篇引言 大家好,我是 fzr123,在软件开发领域深耕多年,一直致力于探索各种提升效率的工具与技术。今天,我将为大家深入介绍一款在测试领域极具价值的开源项目——test - tools,它为开发者们提供了一系列强大的测试功能…...
2022浙江大学信号与系统笔记
原视频地址:2022浙江大学信号与系统(含配套课件和代码) - 胡浩基老师-哔哩哔哩 ⭐⭐⭐ 我的笔记:飞书链接 - 信号与系统 基于视频,记得笔记,加了点自己的补充(有的是问 ChatGPT 的)…...
DeepSeek-VL2
《DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding》是 DeepSeek-AI 团队发布的关于视觉语言模型 DeepSeek-VL2 的论文,以下是对该论文的详细介绍: 研究背景与动机 多模态理解的重要性:在当…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
