python基础面试题汇总(持续更新),冲击offer
目录
- 1.概念理解题
- python内置数据结构,哪些是不可变的
- python新式类和经典类的区别
- is和==有什么区别
- Python中变量查找顺序
- python函数的参数是值传递还是引用传递
- python垃圾回收机制
- 什么是闭包
- 什么是装饰器,开发中用到举例
- 如何实现只读属性
- Python中类方法、实例方法、静态方法有何区别
- new和init的区别,什么时候使用到
- 如何查一个对象的所有属性
- Python中如何动态获取和设置对象的属性
- GIL锁的理解
- 有GIL锁一定可以保证线程安全吗
- 为什么还要设计GIL锁
- 常用的魔法方法
- isinstance 的作用以及与 type()的区别
- 如何实现一个上下文管理类
- 字典内部如何实现
- python实现单例模式
- 单例模式的应用场景有哪些
- Python 中的反射
- 元类是什么?有什么作用?
- python中为什么类都继承了object类
- python实现一个抽象基类,什么时候使用抽象基类
- 2.常考语法
- 求集合交集和并集
- 求字典value最大值对应的key
- 给字典按值排序
- 字符串反转
- alist中元素的age由大到小排序
- 产生一个公差为11的等差数列
- 列表里放可变参数时,下面代码输出结果
- 遍历列表时删除元素
- 统计一个文本中单词频次最高的10个单词
- 输入日期, 判断这一天是这一年的第几天
- 排列:奇数在偶数前,且奇数升序排列,偶数降序排序
- 以下代码他们的输出结果
- 多装饰器代码打印顺序
1.概念理解题
python内置数据结构,哪些是不可变的
a. 整型 int、 长整型 long、浮点型 float、 复数 complex
b. 字符串 str、 列表 list、 元祖 tuple
c. 字典 dict 、 集合 set
d. Python3 中没有 long,只有无限精度的 int
不可变:数值类型(int、float、bool)、string(字符串)、tuple(元组)
可变:list(列表)、dict(字典)、集合 set
python新式类和经典类的区别
a. 在python里凡是继承了object的类,都是新式类
b. Python3里只有新式类
c. Python2里面继承object的是新式类,没有写父类的是经典类
d. 经典类目前在Python里基本没有应用
e. 保持class与type的统一对新式类的实例执行a.class与type(a)的结果是一致的,对于旧式类来说就不
一样了。
f.对于多重继承的属性搜索顺序不一样新式类是采用广度优先搜索,旧式类采用深度优先搜索。
is和==有什么区别
is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象。是否指向同一个内
存地址
== : 比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法。
Python中变量查找顺序
函数作用域的LEGB顺序
1.什么是LEGB?
L: local 函数内部作用域
E: enclosing 函数内部与内嵌函数之间
G: global 全局作用域
B: build-in 内置作用
python在函数里面的查找分为4种,称之为LEGB,也正是按照这是顺序来查找的
python函数的参数是值传递还是引用传递
在Python中其实是引用传递。也就是函数外和函数内的变量都指向同一个对象。
但是当在函数里修改变量或重新赋值时,就需要区分:
-
当参数是可变对象时,函数里变量都引用了同一个对象,那么在函数里改变变量,会影响其他引用的变量;
-
当参数是不可变对象时,函数里的变量被拷贝了一份赋值给了函数内自己的变量,在函数内改变不会影响原来的值。
python垃圾回收机制
循环引用会怎么样?
参考:记一次面试问题——Python 垃圾回收机制 · TesterHome
python 采用的是引用计数机制为主,标记 - 清除和分代收集两种机制为辅的策略。
**引用计数:**当一个对象被创建或者被引用时,该对象的引用计数就会加1,当对象被销毁时相应的引用计数就会减1,一旦引用计数减为0时,表示该对象已经没有被使用.可以将其所占用的内存资源释放掉。
引用计数无法解决循环引用问题。
**分代回收:**以空间换时间的操作方式,Python 将内存根据对象的存活时间划分为不同的集合,每个集合称为一个代,Python 将内存分为了 3“代”,分别为年轻代(第 0 代)、中年代(第 1 代)、老年代(第 2 代),他们对应的是 3 个链表,它们的垃圾收集频率与对象的存活时间的增大而减小。新创建的对象都会分配在年轻代,年轻代链表的总数达到上限时,Python 垃圾收集机制就会被触发,把那些可以被回收的对象回收掉,而那些不会回收的对象就会被移到中年代去,依此类推,老年代中的对象是存活时间最久的对象,甚至是存活于整个系统的生命周期内。分代回收是建立在标记清除技术基础之上。分代回收同样作为 Python 的辅助垃圾收集技术处理那些容器对象。
标记清除(Mark—Sweep):是一种基于追踪回收(tracing GC)技术实现的垃圾回收算法。它分为两个阶段:第一阶段是标记阶段,GC 会把所有的『活动对象』打上标记,第二阶段是把那些没有标记的对象『非活动对象』进行回收。那么 GC 又是如何判断哪些是活动对象哪些是非活动对象的呢?
对象之间通过引用(指针)连在一起,构成一个有向图,对象构成这个有向图的节点,而引用关系构成这个有向图的边。从根对象(root object)出发,沿着有向边遍历对象,可达的(reachable)对象标记为活动对象,不可达的对象就是要被清除的非活动对象。根对象就是全局变量、调用栈、寄存器。 mark-sweepg 在上图中,我们把小黑圈视为全局变量,也就是把它作为 root object,从小黑圈出发,对象 1 可直达,那么它将被标记,对象 2、3 可间接到达也会被标记,而 4 和 5 不可达,那么 1、2、3 就是活动对象,4 和 5 是非活动对象会被 GC 回收。
标记清除算法作为 Python 的辅助垃圾收集技术主要处理的是一些容器对象,比如 list、dict、tuple,instance 等,因为对于字符串、数值对象是不可能造成循环引用问题。Python 使用一个双向链表将这些容器对象组织起来。不过,这种简单粗暴的标记清除算法也有明显的缺点:清除非活动的对象前它必须顺序扫描整个堆内存,哪怕只剩下小部分活动对象也要扫描所有对象。
什么是闭包
在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。
构成条件:
-
在函数嵌套(函数里面在定义函数)的前提下
-
内部函数使用了外部函数的变量(还包括外部函数的参数)
-
外部函数返回了内部函数
实现:
除了使用嵌套函数外,还可以使用类实现闭包:
class Out:def __init__(self, x):self.x = xdef __call__(self, y):return x + yout = Out(3)
out(4)
定义类使用__call__
实现对象可被调用。
什么是装饰器,开发中用到举例
装饰器就是一个特殊的闭包,把一个函数当作外部函数的参数,在内部函数中使用这个函数。使用装饰器则是使用语法糖@来装饰函数。
开发中使用的比较多,比如:
1.flask钩子函数、Django中间件
2.flask路由函数@route
3.自定义接口返回格式的时候的装饰器
4.日志记录装饰器
如何实现只读属性
class Computer:def __init__(self, name, mem, cpu):self.__name = name@propertydef name(self): # 只读, getter方法return self.__namepc2 = Computer('admin', '8G', 8)
print(pc2.name )
# pc2.name = "aa" # 修改会报错AttributeError: can't set attribute
Python中类方法、实例方法、静态方法有何区别
类方法: 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对象和实例对象都可调用
类实例方法: 是类实例化对象的方法,只有实例对象可以调用,形参为self,指代对象本身;
静态方法: 是一个任意函数,在其上方使用 @staticmethod 进行装饰,可以用对象直接调用,静态方法实际上跟该类没有太大关系
new和init的区别,什么时候使用到
new是在实例创建之前被调用的,任务是创建实例然后返回该实例对象,是个静态方法,至少要有一个参数cls(代表当前类),必须有返回值(即该实例对象)。
init是在实例创建完成后被调用的,设置对象属性的一些初始值,通常用在初始化一个类实例的时候,是一个实例方法,至少有一个参数self(代表当前的实例),无需返回值。
init在new之后被调用,new的返回值(实例)传递给init的第一个参数,然后由init设置一些实例的参数。
如何查一个对象的所有属性
可以使用dir()
和__dict__
查询对象属性。
dir()
是python提供的API函数,利用对象的继承关系来查询该对象的所有有效属性,查询顺序为从对象本身向上级查询,下级的属性查询不到。
__dict__
本身作为对象的一种属性,查询范围区别于dir()
利用继承关系查询,__dict__
仅限于对象本身属性。但是并不是所有对象都有__dict__
属性。如果类的属性中有__slots__
属性,则该类的实例没有__dict__
属性。
Python中如何动态获取和设置对象的属性
hasattr和setattr
if hasattr(Parent, 'x'): print(getattr(Parent, 'x')) setattr(Parent, 'x',3) print(getattr(Parent,'x'))
GIL锁的理解
GIL是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。
有GIL锁一定可以保证线程安全吗
不能。
python中一个线程有两种情况释放GIL:一种情况是在该线程进入IO操作之前,会主动释放GIL,另一种情况是解释器不间断运行了1000字节码(Py2)或运行15毫秒(Py3)后,该线程也会放弃GIL。既然一个线程可能随时会失去GIL,那么就涉及到线程安全。GIL设计的出发点是考虑到线程安全,但是这种线程安全是粗粒度(不需要程序员自己对线程加锁,语言层面本身维护着一个全局的锁机制,用来保证线程安全)。
为什么还要设计GIL锁
不能完全保证线程安全,为什么还要设计GIL锁?
这和 CPython 的底层内存管理有关。
CPython 使用引用计数来管理内容,所有 Python 脚本中创建的实例,都会配备一个引用计数,来记录有多少个指针来指向它。当实例的引用计数的值为 0 时,会自动释放其所占的内存。
假设有两个 Python 线程同时引用 a,那么双方就都会尝试操作该数据,很有可能造成引用计数的条件竞争,导致引用计数只增加 1(实际应增加 2),这造成的后果是,当第一个线程结束时,会把引用计数减少 1,此时可能已经达到释放内存的条件(引用计数为 0),当第 2 个线程再次视图访问 a 时,就无法找到有效的内存了。
所以,CPython 引进 GIL,可以最大程度上规避类似内存管理这样复杂的竞争风险问题。
常用的魔法方法
__repr__
__str__
__iter__
__call__
__new__
__init__
__getattr__
__setattr__
__dir__
__lt__
__le__
isinstance 的作用以及与 type()的区别
在python中,isinstance的意思是“判断类型”;isinstance()是一个内置函数,用于判断一个对象是否是一个已知的类型,类似type()。
isinstance() 与 type() 区别:
- type() 不会认为子类是一种父类类型,不考虑继承关系。
- isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
如何实现一个上下文管理类
1.实现enter和exist方法
class File:def __init__(self, filename, mode):self.filename = filenameself.mode = modedef __enter__(self):print("进入")self.f = open(self.filename, self.mode)return self.fdef __exit__(self, exc_type=None, exc_val=None, exc_tbs=None):print("退出")self.f.close()
2.使用contextmanager装饰器
该装饰器将生成器中的代码通过yield语句分成两部分,yield之前的代码为__enter__
方法,yield之后的代码为__exit__
方法,yield的返回值即__enter__
方法的返回值,用于赋给as后的变量。
from contextlib import contextmanager@contextmanager
def open_file(filename, mode):print('进入')f = open(filename, mode)try:yield ffinally:print('退出')f.close()
字典内部如何实现
https://blog.csdn.net/YZL40514131/article/details/125349175
python字典的底层实现的是哈希表。调用python内置的哈希函数,将键(key)作为参数进行转换(哈希运算+取余运算),得到一个唯一的地址(地址的索引),然后将值(value)存放到对应的地址中(给相同的键赋值会直接覆盖原值,因为相同的键转换后的地址时一样的)。
哈希表使用顺序表存储数据:存储键值对时,通过哈希函数计算出键对应的索引,将值存到索引对应的数据区中
获取数据时,通过哈希函数计算出键对应的索引,将该索引对应的数据取出来。
所以键(Key)必须是可哈希的,即通过哈希函数可为此键计算出唯一地址。
对于 Python 来说,变量,列表、字典、集合这些都是可变的,所以都不能做为键(Key)来使用。因为元组里边可以存放列表这类可变元素,所以如果实在想拿元组当字典的键(Key),那必须对元组做限制:元组中只包括像数字和字符串这样的不可变元素时,才可以作为字典中有效的键(Key)。另外还需要注意的一点是,Python 的哈希算法对相同的值计算得到的结果是一样的,也就是说 12315 和 12315.0 的值相同,他们被认为是相同的键(Key)。
python实现单例模式
第一种方法:使用装饰器
def singleton(cls):instances = {}def wrapper(*args, **kwargs):if cls not in instances:instances[cls] = cls(*args, **kwargs)return instances[cls]return wrapper@singleton
class Foo(object):passif __name__ == "__main__":foo1 = Foo()foo2 = Foo()print(foo1 is foo2)
第二种方法:使用基类
class Singleton(object):_instance = Nonedef __new__(cls, *args, **kwargs):if not hasattr(cls, '_instance'):cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)return cls._instanceclass Foo(Singleton):passif __name__ == "__main__":foo1 = Foo()foo2 = Foo()print(foo1 is foo2)
第三种方法:使用元类
元类,元类是用于创建类对象的类,类对象创建实例对象时一定要调用call方法,因此在调用call时候保证始终只创建一个实例即可,type是python的元类。
class Singleton(type):# 元类必须继承typedef __call__(cls, *args, **kwargs):if not hasattr(cls, '_instance'):cls._instance = super(Singleton, cls).__call__(*args, **kwargs)return cls._instanceclass Foo(metaclass=Singleton):passif __name__ == "__main__":foo1 = Foo()foo2 = Foo()print(foo1 is foo2)
单例模式的应用场景有哪些
单例模式应用的场景一般发现在以下条件下:
资源共享的情况下,避免由于资源操作时导致的性能或损耗等,如日志文件,应用配置。
控制资源的情况下,方便资源之间的互相通信。如线程池等,1,网站的计数器 2,应用配置 3.多线程池 4.数据库配置 数据库连接池 5.应用程序的日志应用…
Python 中的反射
反射的定义:主要是应用于类的对象上,在运行时,将对象中的属性和方法反射出来。
使用场景:可以动态的向对象中添加属性和方法。也可以动态的调用对象中的方法或者属性。
反射的常用方法:
1.hasaattr(obj,str)
判断输入的str字符串在对象obj中是否存在(属性或方法),存在返回True,否则返回False
2.getattr(obj,str)
将按照输入的str字符串在对象obj中查找。如找到同名属性,则返回该属性;如找到同名方法,则返回方法的引用,想要调用此方法得使用 getattr(obj,str)()进行调用。 如果未能找到同名的属性或者方法,则抛出异常:AttributeError。
3.setattr(obj,name,value)
name为属性名或者方法名,value为属性值或者方法的引用动态添加属性。如上,首先定义一个方法。再使用setattr(对象名,想要定义的方法名,所定义方法的方法名)
4.delattr(obj,str)
将你输入的字符串str在对象obj中查找,如找到同名属性或者方法就进行删除
元类是什么?有什么作用?
python 里一些皆对象,包括类也是一个对象。元类及创建类的类。
一般自己写元类主要作用是对创建类或类的对象做一些限制和验证等。
python中为什么类都继承了object类
新式类:以 object 为基类(父类)的类;经典类:不以 object 为基类的类。
新式类和经典类在多继承中,会影响 MRO(方法搜索顺序),经典类会按照深度优先的方法去搜索 ;新式类会按照广度优先的方法去搜索。
在 Python 2.x 中,如果没有指定父类,也不会把 object 作为基类。
而在 Python 3.x 中,如果未指定父类,则默认将 object 作为该类的基类,所以 Python 3.x 中定义的都是新式类。
主要是为了兼容经典类,所以都统一默认为新式类了。(不理解。。。)
python实现一个抽象基类,什么时候使用抽象基类
2.常考语法
求集合交集和并集
交集:
s1 = {2, 3.6, True, 2 + 3j}
s2 = {1, 3.6, False, 2 + 3j}print(s1 & s2)
# {1, 3.6, (2+3j)}
print(s2 & s1)
# {True, 3.6, (2+3j)}
交集时,布尔类型和0、1比较时,返回结果参考的是后一个数据;
但是把s2的False去掉,又不一样了,还不知道原因:
s1 = {2, 3.6, True, 2 + 3j}
s2 = {1, 3.6, 2 + 3j}print(s1 & s2)
# {1, 3.6, (2+3j)}
print(s2 & s1)
# {1, 3.6, (2+3j)}
并集:
s1 = {2, 3.6, True, 2 + 3j}
s2 = {1, 3.6, False, 2 + 3j}print(s1 | s2)
# {False, True, 2, 3.6, (2+3j)}
print(s2 | s1)
# {False, 1, 2, 3.6, (2+3j)}
并集时,布尔类型和0、1比较时,返回结果参考的是第一个数据;
把s2的False去掉,求并集时没有出现上面那种现象。
求字典value最大值对应的key
d1 = {"a": 2,"b": 3,"c": 1
}print(max(d1, key=lambda x: d1[x]))
max默认比较的是字典的key,可以指定key来制定比较规则。
给字典按值排序
sorted(d.items(),key=lambda x:x[1])
字符串反转
s = "aStr"[::-1]
alist中元素的age由大到小排序
sorted函数的使用
alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
def sort_by_age(list1):return sorted(alist,key=lambda x:x['age'], reverse=True)print(sort_by_age(alist))
产生一个公差为11的等差数列
print([x*11 for x in range(10)])
列表里放可变参数时,下面代码输出结果
list1 = []
dict1 = {}for i in range(3):dict1["num"] = ilist1.append(dict1)print(list1)
# [{'num': 2}, {'num': 2}, {'num': 2}]
因为dict1是可变变量,所以每次把dict1加到列表里,其实列表里存的都是dict1的引用,当dict1倍改变,列表里引用的dict1都一起跟着改变。
遍历列表时删除元素
1.使用一个新列表,把不需要删除的元素拷贝到新列表;
2.如果不使用新列表,可以使用倒序遍历,这样遍历时,删除元素不会导致前面的索引变化
a=[1,2,3,4,5,6,7,8]
print(id(a))
for i in range(len(a)-1,-1,-1): if a[i]>5: pass else:a.remove(a[i]) print(id(a)) print('-----------') print(a)
统计一个文本中单词频次最高的10个单词
import re
from collections import Counterdef test2(filepath):with open(filepath) as f:return list(map(lambda c: c[0], Counter(re.sub("\W+", " ", f.read()).split()).most_common(10)))
输入日期, 判断这一天是这一年的第几天
考察datetime模块使用
import datetime
def dayofyear(): year = input("请输入年份: ") month = input("请输入月份: ") day = input("请输入天: ") date1 = datetime.date(year=int(year),month=int(month),day=int(day)) date2 = datetime.date(year=int(year),month=1,day=1) return (date1-date2).days+1
排列:奇数在偶数前,且奇数升序排列,偶数降序排序
方法1
def func1(l):if isinstance(l, str):l = [int(i) for i in l]l.sort(reverse=True)for i in range(len(l)):if l[i] % 2 > 0:l.insert(0, l.pop(i))print(''.join(str(e) for e in l))
方法2
def func2(l):print("".join(sorted(l, key=lambda x: int(x) % 2 == 0 and 20 - int(x) or int(x))))
以下代码他们的输出结果
def multi(): return [lambda x : i*x for i in range(4)]
print([m(3) for m in multi()])
正确答案是[9,9,9,9],而不是[0,3,6,9]。产生的原因是Python的闭包的后期绑定导致的,这意味着在闭包中的变量是在内部函数被调用的时候被查找的,因为,最后函数被调用的时候,for循环已经完成, i 的值最后是3,因此每一个返回值的i都是3,所以最后的结果是[9,9,9,9]。
因为延迟绑定的特性,即直到函数调用时,函数内部的执行内容才被确定,而此时i值在产生序列时,最终被赋值为4了,因此每一个函数调用中的上下文的i都是4,而不是预期的递增变化的。
多装饰器代码打印顺序
from collections import abcdef decorator(func):print("a")def wrapper(*args, **kwargs):print("b")return func(*args, **kwargs)print("c")return wrapper@decorator
def worker(*args, **kwargs):print("d")if __name__ == "__main__":print("开始")worker()
# a
# 开始
# b
# d
# c没打印因为提前return了
相关文章:
python基础面试题汇总(持续更新),冲击offer
目录 1.概念理解题python内置数据结构,哪些是不可变的python新式类和经典类的区别is和有什么区别Python中变量查找顺序python函数的参数是值传递还是引用传递python垃圾回收机制什么是闭包什么是装饰器,开发中用到举例如何实现只读属性Python中类方法、实…...
Java课题笔记~ AOP编程术语(掌握)
(1) 切面(Aspect) 切面泛指交叉业务逻辑。上例中的事务处理、日志处理就可以理解为切面。常用的切面是通知(Advice)。实际就是对主业务逻辑的一种增强。 (2) 连接点(Jo…...
暑假刷题第23天--8/6
3748. 递增子串 - AcWing题库 #include<iostream> #include<string> const int N200005; int a[N]; using namespace std; int main(){int t;cin>>t;for(int q1;q<t;q){int n;cin>>n;string s;cin>>s;int cnt1;a[1]1;for(int i2;i<n;i){i…...
ArcGIS API for JavaScript 4.x 教程(一) 显示一张地图
了解如何创建和显示带有基本地图图层的地图。 地图包含地理数据层。地图包含一个基本地图层,以及一个或多个数据层(可选)。可以使用地图视图显示地图的特定区域,并设置位置和缩放级别。 本教程将向您展示如何使用地形底图层创建和…...

Python-OpenCV中的图像处理
Python-OpenCV中的图像处理 颜色空间转换物体跟踪获取HSV的值几何变换图像缩放图像平移图像旋转仿射变换透视变换 图像阈值单阈值自适应阈值Otsus二值化 颜色空间转换 在 OpenCV 中有超过 150 中进行颜色空间转换的方法。但是你以后就会 发现我们经常用到的也就两种࿱…...

分清性能测试,负载测试,压力测试这三个的区别
做测试一年多来,虽然平时的工作都能很好的完成,但最近突然发现自己在关于测试的整体知识体系上面的了解很是欠缺,所以,在工作之余也做了一些测试方面的知识的补充。不足之处,还请大家多多交流,互相学习。 …...

前端架构师岗位的工作职责(合集)
前端架构师岗位的工作职责1 职责: 1.制定前端的标准和规范,并推广和应用,提高团队的开发效率; 2.前端架构的框架或核心模块的设计与实现; 3.在前端架构、设计与开发上对团队进行足够的指导; 4.在日常的系统设计与优化上与服务端团队紧密合…...

使用 Amazon ECS Anywhere 在边缘部署 Amazon IoT Greengrass
1.概述 亚马逊云科技提供了完备的IoT服务能力,涵盖设备服务、连接和控制服务以及云端分析服务,是快速构建安全可靠、可扩展的 IoT 平台的常见选择。Amazon IoT Greengrass 边缘运行时和云服务,可帮助您在设备上构建、部署和管理 IoT 应用。A…...

pytorch Stream 多流处理
CUD Stream https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c-language-extensions 中指出在kenel的调用函数中最后一个可选参数表示该核函数处在哪个流之中。 - 参数Dg用于定义整个grid的维度和尺寸,即一个grid有多少个block。为dim3类型。…...

微信小程序选项卡切换(滑动切换,点击切换)
效果如下:可点击切换,滑动切换 代码如下 这个可以在项目用 index.wxml <view classtopTabSwiper><view classtab {{currentData 0 ? "tabBorer" : ""}} data-current "0" bindtapcheckCurrent>选项一&…...

安路FPGA的赋值报错——移位处理,加括号
authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 在使用移位符号用来当作除以号使用时,发现如下问题 其中 cnt_8K 为偶数和奇数时输出的数据不一样 reg [10:0] cnt_8K; reg [10:0] ram1_addra; always(posedge clk_16M) begin if(ram_out_flag )begin if(…...
GO学习之 接口(Interface)
GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 文章目录 GO系列前言一、什么是…...

ansible常见模块的运用
ansible常见模块的运用 一:Ansible简介二:ansible 环境安装部署管理端安装 ansibleansible 目录结构配置主机清单配置密钥对验证 三:ansible 命令行模块1.command 模块在远程主机执行命令,不支持管道,重定向…...
合宙Air724UG LuatOS-Air script lib API--patch
patch Table of Contents patch patch.safeJsonDecode(s) (local函数 无法被外部调用) patch 模块功能:Lua补丁 patch.safeJsonDecode(s) (local函数 无法被外部调用) 封装自定义的json.decode接口 参数 名称 传入值类型 释义 s string json格式的字符串 返回值 t…...

pytorch求导
pytorch求导的初步认识 requires_grad tensor(data, dtypeNone, deviceNone, requires_gradFalse)requires_grad是torch.tensor类的一个属性。如果设置为True,它会告诉PyTorch跟踪对该张量的操作,允许在反向传播期间计算梯度。 x.requires_grad 判…...
Java基础异常详解
Java基础异常详解 文章目录 Java基础异常详解编译时异常(Checked Exception):运行时异常(Unchecked Exception): Java中的异常是用于处理程序运行时出现的错误或异常情况的一种机制。 异常本身也是一个类。 异常分为…...
vue3+vue-i18n 监听语言的切换
最近在用 vue3 做一个后台管理系统,之前是只考虑中文,现在加了个需求是多语言。 本来也不是太难的需求,但是我用的并不熟悉,并且除了页面展示不同的语言,需求是在切换语言的时候在几个页面中需要做出一些自定义的行为&…...
【考研复习】24王道数据结构课后习题代码|2.3线性表的链式表示
文章目录 总结01 递归删除结点02 删除结点03 反向输出04 删除最小值05 逆置06 链表递增排序07 删除区间值08 找公共结点09 增序输出链表10 拆分链表--尾插11 拆分链表--头插12 删除相同元素13 合并链表14 生成含有公共元素的链表C15 求并集16 判断子序列17 判断循环链表是否对称…...

娇滴滴的一朵花(Python实现)
目录 1 娇滴滴的她 2 Python代码实现 1 娇滴滴的她 娇滴滴。双眉敛破春山色。春山色。 为君含笑,为君愁蹙。多情别後无消息。 此时更有谁知得。谁知得。夜深无寐,度江横笛。 2 Python代码实现 import turtle from turtle import * turtle.title(春天送她一朵小花)…...

Android AccessibilityService研究
AccessibilityService流程分析 AccessibilityService开启方式AccessibilityService 开启原理 AccessibilityService开启方式 . 在Framework里直接添加对应用app 服务component。 loadSetting(stmt, Settings.Secure.ACCESSIBILITY_ENABLED,1); loadSetting(stmt, Settings.Se…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架
文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理:检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目:RankRAG:Unifying Context Ranking…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...