鱼C论坛

 找回密码
 立即注册
查看: 1555|回复: 5

[已解决]调用方法时,参数应该怎么写?不写参数会报错“login() takes exactly 1 argument ...

[复制链接]
发表于 2017-9-16 23:06:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【问题】调用自己写的一个login的方法时,参数应该怎么写?不写参数会报错“login() takes exactly 1 argument (0 given)”


【例子】如下:

定义了一个方法名:Login.py,里面暂时只定义了一个方法login

def login(driver):
  
    # Check if already login

    params1 = {}
    params1["content"] = "Sign In"
    params2 = {}
    params2["content"] + "Sign Out"
    params3 = {}
    params3["content"] = "Sign up today"
   
    if driver.execute_script("mobile:text:find", params2) == "true":
        pass
    else:
        result1 = driver.find_element_by_xpath("//*[@Label='Sign In']").click()
        #time.sleep(2)
        
        driver.find_element_by_xpath("//*[@Value='Email Address']").send_keys("ross999@gmail.com")
        driver.find_element_by_xpath("//*[@Value='Password']").send_keys("Q1234567")
        driver.find_element_by_xpath("//*[@Label='Sign In']").click()
        
        
        result2 = driver.execute_script("mobile:checkpoint:text", params2)
        
    return driver

【在其他的文件调用login方法】:


import Login

然后在main()里直接调用:

Login.login()


最佳答案
2017-9-16 23:22:01
你定义函数的时候有一个参数的呀
  1. def login(driver):
复制代码


所以你调用的时候也要填上相对应的参数才行啊,(不过参数名可以不和定义时候的一致),比如可以下面这样调用
  1. Login.login(a)
  2. Login.login(b)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-16 23:22:01 | 显示全部楼层    本楼为最佳答案   
你定义函数的时候有一个参数的呀
  1. def login(driver):
复制代码


所以你调用的时候也要填上相对应的参数才行啊,(不过参数名可以不和定义时候的一致),比如可以下面这样调用
  1. Login.login(a)
  2. Login.login(b)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-17 00:02:00 | 显示全部楼层
我这个方法是登录用户名和密码的。参数输入个a有用吗?

随便放一个a,她又报错:

“global name 'a' is not defined”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-17 05:36:11 | 显示全部楼层
shuofxz 发表于 2017-9-16 23:22
你定义函数的时候有一个参数的呀

兄弟,我把你设为最佳答案了。。。但是问题没有解决,你还可以帮我看一下吗哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-17 14:31:22 | 显示全部楼层
Miao0284 发表于 2017-9-17 00:02
我这个方法是登录用户名和密码的。参数输入个a有用吗?

随便放一个a,她又报错:

我不是这个意思呀=。=

我举的例子里面的a,b只是随便写的呀,具体要在那里填什么变量,要看你的程序的呀
比如我有这么一个函数
  1. def add(num_1, num_2):
  2.     sum = num_1 + num_2
  3.     return sum
复制代码


那么调用的时候你不能直接就写
  1. Q = add()
复制代码

这样一定是会报错的,因为定义的这个函数需要两个输入变量进行内部的计算,比如
  1. Q = add(3,5)
复制代码

那么这个函数就会返回3+5的值给Q

或者如果不在函数参数那里填入具体的数字的话,也可以填入变量名,但一定是要定义过的才可以 比如
  1. a = 3
  2. b = 5
  3. Q = add(a,b)
复制代码

这就是把a的值和b的值带入到函数中进行计算


同样的对于你的程序来说,想要调用login()这个函数,也要在其中填入【你前面已经定义好的变量】才可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-9-17 23:15:55 | 显示全部楼层
shuofxz 发表于 2017-9-17 14:31
我不是这个意思呀=。=

我举的例子里面的a,b只是随便写的呀,具体要在那里填什么变量,要看你的程序的 ...

ok 搞定了,使用参数时,忘记定义了。问题解决,非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 16:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表