迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

修复 Python 错误TypeError: Missing 1 Required Positional Argument

作者:迹忆客 最近更新:2023/05/30 浏览次数:

类是面向对象编程语言的基本特征之一。 每个对象都属于 Python 中的某个类。

我们可以创建我们的类作为蓝图来创建相同类型的对象。 我们使用 class 关键字在 Python 中定义一个类。

Python 中一个非常重要的特性是在定义类时使用 self 属性。 self 属性表示对象的数据并将参数绑定到对象。

本篇文章将讨论 Python 中的 TypeError: missing 1 required positional argument: 'self' 错误以及我们如何解决它。

让我们讨论引发此错误的情况。


不在 Python 中实例化对象

位置参数是指我们为函数提供的数据。 为了创建类对象,我们使用构造函数。

如果类需要任何数据,我们必须将其作为构造函数中的参数传递。

当我们忘记实例化类对象或错误地实例化类实例时,会引发此错误。

请参阅下面的代码。

class Delft:
   def __init__(self, name):
       self.name = name
   def fun(self):
       return self.name

m = Delft.fun()
print(m)

输出:

TypeError: fun() missing 1 required positional argument: 'self'

在上面的例子中,我们得到错误是因为我们忘记实例化类的实例并试图访问类的函数。 因此,未定义 self 属性,无法将属性绑定到对象。

请注意,这是一个 TypeError,在对给定数据类型执行某些不受支持的操作时在 Python 中引发。 不支持不创建实例直接访问类方法。


在 Python 中错误地实例化类对象

可能发生此错误的另一种情况是当我们错误地实例化类对象时。 这可能是一个小的打字错误,例如忽略括号或未提供参数。

例如:

class Delft:
   def __init__(self, name):
       self.name = name
   def fun(self):
       return self.name

m = Delft
a = m.fun()
print(a)

输出:

TypeError: fun() missing 1 required positional argument: 'self'

现在让我们在下面的部分中讨论如何修复此错误。


修复 Python 中的 TypeError: missing 1 required positional argument: 'self' 错误

要修复此错误,我们可以创建类实例并使用它来访问类方法。

请参阅下面的代码。

class Delft:
   def __init__(self, name):
       self.name = name
   def fun(self):
       return self.name

m = Delft('Stack')
a = m.fun()
print(a)

输出:

Stack

在示例中,我们首先创建类的实例。 然后使用它来访问类方法以返回一些值并打印它; 错误已修复。

另一个修复涉及使用静态方法。 静态方法是绑定到特定类而不是对象的函数。

我们可以使用 @staticmethod 装饰器来创建这样的方法。

例如:

class Delft:
   def __init__(self, name):
       self.name = name
   @staticmethod
   def fun(abc):
       return abc

a = Delft.fun('Stack')
print(a)

输出:

Stack

在上面的示例中,我们将 fun() 函数更改为静态函数。 这样,我们可以在不实例化任何类对象的情况下使用它。


总结

本教程讨论了 Python 中的 TypeError: missing 1 required positional argument: 'self' 错误以及我们如何解决它。

我们讨论了可能发生此错误的情况以及如何通过实例化类的对象来修复错误。 我们也可以使用静态方法来解决这个错误。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 错误 ImportError: No Module Named Requests

发布时间:2023/05/31 浏览次数:104 分类:Python

错误 ImportError: No module named requests 意味着 Python 解释器无法导入 requests 模块。本篇文章展示了修复Python中 ImportError: No module named requests 错误的方法。

Python 中错误 ImportError: No Module Named Sklearn

发布时间:2023/05/31 浏览次数:194 分类:Python

在 Python 中,sklearn 被用作机器学习工具,用于在回归、集群等方面创建程序。很多时候,导入它会抛出错误—— No module named sklearn。Python中错误ImportError: No module named sklearn的原因

修复 Python 错误 SyntaxError: Invalid Token

发布时间:2023/05/30 浏览次数:85 分类:Python

在本文中,我们将了解什么是 SyntaxError: invalid token Python 错误以及如何修复它。 令牌是语句的重要组成部分,组合这些令牌可为 Python 编译器提供有意义的模式。

修复 Python 错误 SyntaxError: 'break' Outside Loop

发布时间:2023/05/30 浏览次数:93 分类:Python

本篇文章将讨论 Python 的 SyntaxError: 'break' outside loop 错误。循环和条件语句是任何编程语言不可或缺的一部分。修复 Python 中的 SyntaxError: 'break' outside loop 错误

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便