如何解决在python中调用类中的实例
我正在参与一个研究项目,试图为我们的一个 AGV:s(自主引导 Viechle)构建一个类。 我不会展示整个班级,但我需要一些指示,以便我可以为我的学生编写易于使用的程序。
import requests
import json
import ipaddress
import cmd
MiRTemplate = "http:///api/v2.0.0/"
headers = {}
headers["Content-Type"] = "application/json"
headers["Authorization"] = "Basic
def insertChar(mystring,position,chartoinsert ):
#check for correct ip input from user
longi = len(mystring)
mystring = mystring[:position] + chartoinsert + mystring[position:]
return mystring
class mir(object):
def __init__(self,headers,ip):
self.headers = headers
self.ip = ip
print("MiR instance created!")
def getHw(self):
host_hw = ip+"/hw/export"
get_hw = requests.get(host_hw,headers = self.headers)
print("it worked")
print(get_hw.headers)
return
在我第一次尝试使用这个类时,我只是这样称呼它:
mir.getHw()
并得到我请求的打印回复
然后我添加了用户输入,在这种情况下是一个 ip,以便 GET 或 POST 到某个 AGV(我们有 2 个):
#user input
while True:
try:
user_ip = input("Enter ip adress of MiR: ")
ip = ipaddress.ip_address(user_ip)
print(f'{ip} is correct. Version: IPv{ip.version}')
#convert back to string and insert into adress line for agv
ip=str(ip)
ip=insertChar(MiRTemplate,7,ip)
mir = mir(headers,ip)
mir.getHw
break
except ValueError:
print('ip Adress is invalid')
continue
while True:
# Create an instance of the MiR class,pass the headers an ip
try:
userinput=input("""Which function do you want to use? \n\n
1) HardWare Info. \n\n
type q to quit \n\n
Please enter the corresponding number and hit enter >>>>> """)
if userinput == 1:
mir = mir(headers,ip)
mir.getHw()
elif userinput== "q":
break
except ValueError:
print("incorrect input")
continue
但是在这里我没有从函数中得到打印输出,我该如何解决这个问题? 我还有 8 个像 getHw 这样的函数,我想稍后添加。
//大卫
解决方法
input
函数在 Python 3 中总是返回一个 str
对象,因此永远不会产生您期望的 1
值。您必须尝试将 userinput
变量转换为 int
或者更简单的将其与普通字符串进行比较,如下所示:
if userinput == '1':
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。