python中同一个类,带参的方法直接如何相互调用

 平凡淘你 发布于 2022-10-30 21:42

我想在test_api1方法调用GetExecl时配置参数;(为了去掉循环语句,可以访问execl中指定行)

def GetExecl(b1,self):
    testCaseFile = xlrd.open_workbook(r'C:\Users\Chu\Desktop\API_Test\TestCase\test.xls') # 打开excel文件
    table = testCaseFile.sheet_by_name('Sheet1')# 打开excel表
    nrows = table.nrows # 获取总行数
    for i in range(1,nrows):
        no = table.cell_value(i,0) 
        TestCase = table.cell_value(i,1)
        url = table.cell_value(i,2)
        parameter = table.cell_value(i,3)
        method = table.cell_value(i,4)
        checkpoint = table.cell_value(i,5)
        if l == i:
            print 1
        print  no,TestCase,url,parameter,method,checkpoint
        if method == 'GET':
            url = url + parameter
            print url
            result = urllib2.urlopen(url).read()
            result=result.decode('utf-8')
            print type(result),type(checkpoint)
            print 1
            if re.search(checkpoint,result):
                print TestCase + url + u"pass"
            else:
                print u"error"

def test_api1(self):
    """第一个接口"""
    print u"Test1"
    b1=2
    print self.GetExecl(b1)
    


新手小白求教,谢谢!

1 个回答
    1. 你的GetExcel方法并没有用到这个类的其他属性,应该设计为静态方法

    2. 没看到你传参的用处

    3. 方法名小写下划线分割

    4. self必须是实例属性的第一个参数

    5. 你可以抽象一下你的问题来提问,这样会有更多的人来帮你,你直接贴这么长一个函数过来,很多人会望而却步

    class GetExcel(object):
    
        @staticmethod
        def get_excel(i):
            “”“
                i: 你想要哪一行
            ”“”
            testCaseFile = xlrd.open_workbook(r'C:\Users\Chu\Desktop\API_Test\TestCase\test.xls')  # 这里写死真的好吗?
            table = testCaseFile.sheet_by_name('Sheet1')  # 打开excel表
            no = table.cell_value(i,0) 
            TestCase = table.cell_value(i,1)
            url = table.cell_value(i,2)
            parameter = table.cell_value(i,3)
            method = table.cell_value(i,4)
            checkpoint = table.cell_value(i,5)
            # 这样写真的好吗?
            # no, TestCase, url, parameter, method = table.row_values(i)
            # 或者你的数据更长
            # no, TestCase, url, parameter, method = table.row_values(i)[: 5]
            # 可以这样写吗?我没有测试...
            # do something
            pass
            
        def test_api1(self):
            self.get_excel(10)
    2022-10-31 22:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有