我在mypythonlib目录中有一个文件myfunctions.py
from requests_html import HTMLSession
import requests
def champs_info(champname:str, tier_str:int):
url = f"https://auntm.ai/champions/{champname}/tier/{tier_str}"
session = HTMLSession()
r = session.get(url)
r.html.render(sleep=1, keep_page=True, scrolldown=1)
information = r.html.find("div.sc-hiSbYr.XqbgT")
sig = r.html.find('div.sc-fbNXWD.iFMyOV')
tier_access = information[0]
tier = tier_access.text
我想通过另一个文件访问变量tier
,test_myfunctions.py
但问题是,我还必须给函数champs_info
提供参数,以便它能够相应地访问url
from mypythonlib import myfunctions
def test_champs_info():
return myfunctions.champs_info("abomination",6).tier
但是在运行此代码时,我得到了一个错误-
./tests/test_myfunctions.py::test_champs_info Failed: [undefined]AttributeError: 'NoneType' object has no attribute 'tier'
def test_champs_info():
> return myfunctions.champs_info("abomination",6).tier
E AttributeError: 'NoneType' object has no attribute 'tier'
tests/test_myfunctions.py:3: AttributeError
有什么解决方案吗?为什么这段代码不能访问变量?
我写了myfunctions.champs_info("abomination",6).tier
,希望它能从champs_info
函数中获取tier
变量,同时从myfunctions文件中为它提供所需的参数:(
通过1)返回函数中的值,2)在模块中使用全局变量,或3)定义类,可以访问函数中变量的值
如果只想访问函数的单个局部变量,则函数应返回该值。类定义的一个好处是,可以定义需要访问的任意多个变量
1。返回值
2。全球
访问全局层VARABLE
3。类别定义:
test_functions.py可以用这种方式调用champs_info()
您只需从champs\u info()函数返回层即可
就这样,
myfunctions.py
测试函数.py
就这样。你完了
在myfunctions.champs_info()中添加一个返回层
在脚本测试中_myfunctions.py删除.tier
相关问题 更多 >
编程相关推荐