python 给类 传参 为什么接收不到参数 打印出来是None?


定义一个类
class ZApi:
    def __init__(self, symbol, access_key=None ,secret_key=None, passphrase=None ,host=None):
        self._host =  host

        def  request(self, uri):
            ..........
            
使用类
host="http://localhost:8083" 
zApi = ZApi( host)

结果
url = urljoin(self._host, uri)
print(self._host)

打印值为 None

到底是哪里出错了?


from urllib.parse import urljoin

class ZApi:
    def __init__(self, symbol, access_key=None, secret_key=None, passphrase=None, host=None):
        self._host = host

    def request(self, uri):
        url = urljoin(self._host, uri)
        print(url)

# 使用类
symbol = "BTC"
access_key = "your_access_key"
secret_key = "your_secret_key"
passphrase = "your_passphrase"
host = "http://localhost:8083"

zApi = ZApi(symbol, access_key, secret_key, passphrase, host)
zApi.request("/endpoint")

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7661920
  • 你也可以参考下这篇文章:Python 函数默认返回None原因是什么?
  • 同时,你还可以查看手册:python- 接下来? 中的内容
  • 除此之外, 这篇博客: python 标准输入输出中的 1.1 概念 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 用户通过控制台将数据传递给程序的过程
    
  • 您还可以看一下 刘顺祥老师的Python数据分析与挖掘课程中的 找出最适合你的那些数(一)小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题标题: Python类在接收参数时为什么会返回None? 问题内容:我创建了一个类,并在实例化时传递了参数,但在打印参数时却返回了None值。请问这个问题出现的原因是什么?

    问题解答: 出现参数返回None的情况有以下几种可能性: 1. 类中的构造函数没有正确初始化参数的属性。

    在Python中,类的构造函数是__init__()方法,用于初始化类的实例。如果没有正确给参数属性赋值,那么在打印参数时就会返回None。

    示例代码:

    class MyClass:
        def __init__(self, param):
            # 没有正确给参数属性赋值
            self.param = None
    
    obj = MyClass(10)
    print(obj.param)  # 输出:None
    

    解决方案:在构造函数中正确地初始化参数属性。

    class MyClass:
        def __init__(self, param):
            self.param = param
    
    obj = MyClass(10)
    print(obj.param)  # 输出:10
    
    1. 在实例化类时传递的参数值为None。

    如果在实例化类时将参数值设置为None,则在打印参数时就会返回None。

    示例代码:

    class MyClass:
        def __init__(self, param):
            self.param = param
    
    obj = MyClass(None)
    print(obj.param)  # 输出:None
    

    解决方案:确保在实例化类时传递的参数值不为None。

    1. 在类中的方法中没有正确返回参数的值。

    如果在类的方法中没有使用return语句来返回参数的值,那么在使用该方法时就会返回None。

    示例代码:

    class MyClass:
        def __init__(self, param):
            self.param = param
    
        def get_param(self):
            # 没有正确返回参数的值
            print(self.param)  # 此处没有返回参数的值
    
    obj = MyClass(10)
    obj.get_param()  # 输出:None
    

    解决方案:在类的方法中使用return语句将参数的值返回。

    class MyClass:
        def __init__(self, param):
            self.param = param
    
        def get_param(self):
            return self.param
    
    obj = MyClass(10)
    print(obj.get_param())  # 输出:10