在python中调用类中的实例

如何解决在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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?