跳到主要内容

Python 内置函数

🐍为了写出我们想要的脚本, 我们首先应当掌握的是python基础语法以及常用内置函数

😄下面是python基础库以及全局自带函数, 如正则库re, 堆栈回溯库traceback, 线程库thread

建议阅读菜鸟Python3教程

🐳如果需要更详细深入的资源建议到bilibili自己喜欢的老师搜索学习^_^

🐳加油!

另外, 我们需要意识到

在Yyds.Auto中, 我们编写的python代码是在安卓设备中运行的, 某些函数的行为会跟在电脑主机或者服务器中运行python代码不一样 包括但不限于以下的不同点

  1. 非常重要:print() 函数将会被重定向到logcat, 并复制到websockets流中发送到我们的开发插件以及app
  2. 非常重要:exit() 函数就会抛出一个异常而导致脚本工程停止, 而不是退出python虚拟机. 所以你如果想简单明了地中断代码运行, 直接调用exit即可
  3. import 导入会优先从工程目录/sdcard/Yyds.Py/工程名/中导入
  4. os.getcwd() 返回当前工程根目录
  5. 可以在python中调用java函数, 比如我们的通讯接口就是调用到java类以及函数
  6. 不建议异步, 谨慎使用多线程, 会增加脚本复杂性和降低和维护性.
  7. 当然, 也不建议使用多进程(multiprocessing), 在安卓虚拟机进程上底层调用fork进程会导致一些隐密的bug, 不是一个稳定的编程方式
python全局函数以及自带库例子
# 输出打印
a = 5
b = "hello"
print(a, b)

# 字符串模版
print(f"a={a}, b={b}")

# 字符串转整数
c = str("999")
print(c)

# 线程
import thread
def r():
print("线程")
thread.Thread(target=r).start()

# 文件读写
import codecs
with codecs.open("/sdcard/1.txt", encoding="utf-8", mode="rw") as f:
print(f.read())
f.write("change")


# 下载文件
def download(url, save_local_path):
r = requests.get(url, stream=True)
if r.status_code == 200:
with open(save_local_path, 'wb+') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)

# 配置缓存
class Person:
def __init__(self, n, a):
self.name = n
self.age = a

def show(self):
print(self.name + "_" + str(self.age))


aa: Person


def test_cache():
"""
缓存一些配置
:return:
"""
global aa
aa = Person("chenMoney", 2)
aa.show()
f = open('.cache', mode='wb+')
pickle.dump(aa, f, 0)
f.close()

print("测试反序列执行, 如果输出信息, 则正常")
f = open('.cache', mode='rb')
bb = pickle.load(f)
f.close()
bb.show()