- Python学习笔记07
正文01
python学习笔记
第十三章,面向对象初识对象生活中数据的组织学校开学,要求学生填写自己的基础信息,一人发一张白纸,让学生自己填我叫林军杰,今年31岁.来自山东省,我是男的,中国人内容混乱改为登记表,打印出来让学生自行填写:姓名林军杰姓别男国籍中国籍贯山东省年龄31整洁明了程序中数据的组织在程序中简单使用变量来记录学生信息student_1={"姓名":"周杰轮","性别":"男","国籍":"中国","籍贯":"台
- Python学习笔记03
正文01
python学习笔记
第五章、Python函数函数介绍函数函数:是组织好的,可重复使用的,用来实现特定功能的代码段name="itheima"length=len(name)print(length)输出结果:7为什么随时都可以使用len()统计长度?因为,len()是Python内置的函数:是提前写好的可以重复使用实现统计长度这一特定功能的代码段我们使用过的:input()、print()、str()、int()等都
- Python学习笔记 —— 文件处理模块
miles-zh
pythonpython
Excel文件openpyxl读/写Excel文件,https://pypi.org/project/openpyxlxlwt创建Excel文件,设置单元格样式,https://pypi.org/project/xlwtxlrd读取Excel文件,https://pypi.org/project/xlrdxlutils修改Excel文件,https://pypi.org/project/xluti
- 【Python学习笔记】Python logging模块的学习
Augenstern K
Pythonpython学习笔记
Pythonlogging模块基础介绍作用与功能基本用法引入模块创建并配置记录器的基本步骤代码演示日志级别日志消息格式用法介绍代码示例日志的输出位置代码示例日志记录的高级功能对日志记录进行过滤和处理在多个模块中使用同一个日志记录器总结当谈到日志记录时,logging库是Python中最常用的工具之一。它提供了许多功能和选项,使开发人员能够灵活地记录和管理应用程序的日志信息。引入logging作为P
- Python 线程池 ThreadPoolExecutor(二) - Python零基础入门教程
猿说编程
目录一.Python线程池前言二.Python线程池ThreadPoolExecutor常用函数1.线程池as_completed函数使用2.线程池map函数使用3.线程池wait函数使用三.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门一.Python线程池前言紧接着上一篇文章Python线程池ThreadPoolExecutor(一)我们继续对线程池深入一
- Python学习笔记(1)——环境安装与变量
ThinkerChenYi
python学习笔记Python学习笔记
python环境安装-python2还是python3python2只支持到2020年,并且python2和3有不少用法差异。要是刚学完python2不久就发现过时了这就很尴尬了,所以推荐使用python3-安装环境推荐:Anaconda+pychamAnaconda是一个python的科学计算包,python环境,常用模块以及工具都包含在里面,省心省力官网:https://www.anacond
- 2021-11-1 台式电脑出问题了,手机更新
小白的姐姐
Python学习:学习第四章部分内容今天做的事情:工作上了一节瑜伽课学习python感想:今天继续看了部分>,脑中产生了一个疑问,古时候交通不便,知识交流不通畅,老子他们是如何知晓世界万物发展的道的?不同的事物是不是有不同的发展规律呢?如果要遵循道来思考行事,首先自己要知道发展的规律吧?那么这个规律怎么获得呢?可以通过一个规律归纳出其他规律呢?这个是我今天疑惑的地方。还有就是关于书中要将书读薄的观
- Python学习-----命令行参数解析argparse库
被Python玩的Kenny
常用操作python学习整理学习python
一、argparse库介绍1、argparse库是python自带库,不用特殊安装2、argparse库是可以很好的解析命令行参数。即将python-a-b--path等-a、-b、–path这些的命令行参数值解析并保存起来,以供程序使用。二、关于命令行参数的一些说明命令行参数分为必选参数和可选参数。必选参数:又名位置参数,即在参数值不需要跟在参数名后面,而是通过在命令行里的相对位置来决定其属于哪
- 2.25python笔记 高阶编程
13351
@[TOC](2.25学堂在线python学习笔记高阶编程)#高阶编程1.利用二分法查找一个字符是否在某个字符串当中基线条件:当s=''时,返回False当len(s)=1且s==char时返回True当len(s)>1且s[mid]>char时,返回isIn(char,s[:mid])否则当s[mid]1:ifs[mid]>char:print(s)returnisIn(char,s[:mid]
- Python print 函数- Python零基础入门教程
猿说编程
目录1.print函数输出单个字符2.print函数输出多个字符3.设置print函数不换行4.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门print翻译为中文指打印,在Python中能直接输出到控制台,我们可以使用print函数打印任何变量的值到控制台,简单方便。1.print函数输出单个字符print函数能直接打印单边个变量a=1.0print(a)#输
- Python学习DAY06_面向对象编程_基础
是憧憬呀
Python学习python
面向对象编程面向对象思想有3大要素:封装、继承和多态。把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。上面是比较官
- Python学习系列 -认识面向对象三大特性、可见性和属性装饰器
需要休息的KK.
python学习javapycharm面试
系列文章目录第一章初始Python第二章认识Python变量、类型、运算符第三章认识条件分支、循环结构第四章认识Python的五种数据结构第五章认识Python函数、模块第六章认识面向对象三大特性文章目录系列文章目录前言一、类和对象1.定义类2.创建和使用类对象3.使用类对象中的方法4.初始化二、面向对象的三大特性1.封装2.继承3.多态三、属性可见性四、属性装饰器总结前言面向对象编程是一种非常流
- 从0开始python学习-54.python中flask创建MD5和base64加密校验的接口
不会代码的小测试
pythonpython学习flask测试工具开发语言后端
MD5加密接口importhashlibfromflaskimportFlask,request,jsonify#初始化一个flask的对象app=Flask(__name__)#MD5加密校验数据请求#定义用户数据user_data=[{"username":"admin1","password":"E10ADC3949BA59ABBE56E057F20F883E"},#123456{"user
- python学习(十)文件和异常-(下)
August________
异常使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生python不知所措的错误时,都会创建一个异常对象。编写处理该异常的代码,程序将继续执行。如果未对异常做出处理,程序将停止,并显示一个traceback。使用try-except代码块处理异常处理ZeroDivisionError异常print(5/0)Traceback(mostrecentcalllast):File"D:\学习
- python学习记录4--给自己:布尔运算&循环(break,continue,pass,else,exit())
mee_tiz
python
M酱正在快马加鞭地赶来(咚咚咚)~~~一、布尔运算1.定义:布尔运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维布尔运算发展到三维图形的布尔运算。由于布尔在符号逻辑运算中的特殊贡献,很多计算机语言中将逻辑运算称为布尔运算,将其结果称为布尔值。逻辑运算(logicaloperators)通常用来测试真假值。最常见到
- Python初学之旅:探索、挑战与收获
琛哥的程序
python开发语言
自从我决定踏入编程的大门,Python成为了我选择的第一把钥匙。这把钥匙不仅为我打开了一个全新的世界,还让我在其中找到了乐趣、挑战和不断的成长。在此,我想分享我作为初学者的Python学习之旅,记录那些摸索、尝试和突破的时刻。在开始学习之前,我对编程几乎一无所知,只知道它是一种让计算机执行任务的方式。选择Python作为起点,是因为听闻它的语法简洁、易于上手,而且应用领域广泛。但真正踏入学习之后,
- mitoinstaller,一个强大的 Python 库!
Sitin涛哥
Pythonpython开发语言
更多Python学习内容:ipengtao.com大家好,今天为大家分享一个强大的Python库-mito。Github地址:https://github.com/mito-ds/mito在Python开发中,打包和发布应用程序是一个常见的任务,尤其是当你想要与其他人分享你的应用时。MitoInstaller是一个方便易用的Python库,旨在简化Python应用程序的打包和发布过程。它提供了简单
- 平淡无奇的一天
王玉增之成长
早上卧床阅读了半小时【创富法则】,制作阅读书签一张!哈哈哈,美好的一天开始啦!断舍离是一件愉悦身心健康的事!起床后把昨天换下的衣服洗干净晾上!屋里收拾了一翻,该丢的都丢了,开开心心的出门啦!主要是花了8.9元报了Python学习,写代码果然不容易,用了一个下午才过了两关!每天3关才可以跟上7天进度!所以要好好学习,要把时间倾斜过来!每天至少两个小时在这个课程上面!晚上带着徒弟玩5回合实现出圈梦想的
- Python学习笔记——逻辑运算符not,and,or
phoebe’
python
运算优先级:not>and>or三个都从左往右解析,区别如下not:返回布尔型(TrueorFalse)>>>not7False>>>not0Trueand:有0(False)则返回0(False),否则返回后一个变量(常数)>>>3and0and10>>>1and2and33>>>Falseand1Falseor:返回第一个不为0(False)的变量(常数)>>>FalseorTrueTrue>
- python学习笔记——三目运算符与逻辑运算符
phily123
python学习笔记python
一、三目运算符python中用ifelse来替代其他编程语言的?:三目运算符,并且用法不同。ifa>b:c=aelse:c=bpython中:c=aifa>belsebc语言中:c=a>b?a:b二、逻辑运算符python中逻辑运算符用andornot:20and10#结果是1020or10#结果是200or10#结果是10not10#结果是Falsenot0#结果是Truec语言中逻辑运算符用&
- Python学习第三天——逻辑运算符、输入输出、流程控制
听风-_-
学习记录python
1.逻辑运算符not“非”,如果x为True,则返回False。and“与”,y为True,如果x为Fals额,xandy的结果为Flase。若x为True,则返回y的值。(判断结果为True)or“或”,y为False,如果x的值为True,则它的返回值为True,否则返回y的值。总结:当判断条件为True时,返回当前的值。优先级:not>and>or2.输入输出(1)输入python3.x中输
- Python学习记录——사 运算符
咬光空气
Python学习python开发语言后端
目录1、算术运算符2、赋值运算符3、复合赋值运算符4、比较运算符5、逻辑运算符1、算术运算符+-*/除//整数,取商%取模,也是取余,取除后的余数**指数,幂运算()()高于**高于*///%高于+-2、赋值运算符=,既可以单变量,也可以多变量赋值,比如a,b,v,d=3,g=e=r=17,也可以同时赋值多个变量3、复合赋值运算符+=、-=、*=、/=、//=、%=、**=复合和其它同在时,先算复
- Python学习——字典和集合
心若鉴
Python学习——字典和集合泛映射类型(1)什么是可散列的数据类型?如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash__()方法。另外可散列对象还要__eq__()方法,这样才能跟其他键作比较。如果两个可散列对象是相等的,那么它们的散列值一定是一样的。(2)什么是hash()函数呢?hash()用于获取一个对象(字符串或者数值等)的哈希值>
- Python学习篇33-Python操作Excel存储数据
IRON~TXTECHCOM
Python语境:编码之魅理解之智python学习excel开发语言
Python操作Excel存储数据openpyxl模块openpyxl模块是一个读写Excel2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。安装openpyxl模块要想使用openpyxl模块,必须先安装此模块。直接使用pip就可以进行安装,命令如下:pipinstallopenpyxlE
- Python学习Pytorch
xdpcxq1029
python学习pytorch
一、如何查看本机是否安装了Pytorch在Python环境中查看是否安装了PyTorch可以通过几个简单的步骤来完成。这里有一些方法:使用Python命令行:打开你的命令行工具(比如Terminal、CommandPrompt或AnacondaPrompt),然后输入Python来启动Python解释器。之后,尝试导入PyTorch库来看看是否会报错。importtorchprint(torch.
- OpenCV-Python学习(九):图像滤波
星光下的胖子
目录:1.滤波的相关概念2.卷积操作3.平滑操作(低通滤波)均值滤波中值滤波高斯滤波双边滤波4.锐化操作(高通滤波)自定义锐化核USM锐化(UnsharpMask)5.梯度操作(高通滤波)Sobel算子Scharr算子Laplacian算子一、滤波的概念滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。图像滤波是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处
- Python学习(16)|列表_遍历_排序_max_min_sum
Bug.ink
学习python开发语言算法pycharm
列表的遍历:a=[10,20,30,40]forobjina:#obj是临时变量名称,随意起名print(obj)执行结果:复制列表所有的元素到新列表对象:list1=[30,40,50]list2=list1#只是将list2也指向了列表对象。也就是说list1和list2持有地址是相同的,列表对象本身的元素并没有复制print(id(list1))#执行结果:1933292032520prin
- 【python学习】——pyttsx3库实现文本朗读、音量、音速等调节
有情怀的机械男
python学习文本朗读pyttsx3
importpyttsx3#初始化朗读引擎engine=pyttsx3.init()#设置朗读速度self.engine.setProperty('rate',120)#text为需要读取的内容self.engine.say(text)#不添加下面这句,没有声音self.engine.runAndWait()pyttsx3其他应用:pythonpyttsx3实现文字朗读_JSON_L的博客-CSD
- Python学习
1eb034fb5715
Tornado是一个PythonWeb框架和异步网络库,通过使用非阻塞网络I/O,Tornado可以扩展到数万个开放连接,WebSockets等需要与每个用户建立长期连接的应用程序。
- Python 教学 | Python 学习路线+经验分享,新手必看!
企研数据
pythonPython入门Python学习路线Python经验分享1024程序员节
更多内容点击查看Python教学|Python学习路线+经验分享,新手必看!Python教学专栏,旨在为初学者提供系统、全面的Python编程学习体验。通过逐步讲解Python基础语言和编程逻辑,结合实操案例,让小白也能轻松搞懂Python!>>>点击此处查看往期Python教学内容本文目录一、前言二、为什么学Python?三、Python学习路线与经验分享1.Python环境配置2.Python
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D