You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python OOP类方法实例参数命名规则相关疑问

Python OOP 实例方法参数疑问解答

首先明确核心规则:Python 类的实例方法第一个参数的命名不存在强制限制,仅行业通用约定将其命名为self,用来指向当前调用该方法的实例对象。
你看到的代码可以正常运行的原因如下:

  • 定义实例方法时的第一个参数,本质是预留的占位参数:当你通过实例调用方法(比如p1.myfunc())时,Python 会自动把当前实例(也就是p1)作为第一个实参传入该方法,不需要你手动传参
  • 示例里__init__方法的mysillyobject、myfunc方法的abc,本质都是当前实例对象的别名,和约定俗成的self没有任何功能上的区别,自然可以正常访问实例上绑定的name、age属性

注意:W3Schools 这里使用奇怪的参数名仅为了演示参数名可自定义的特性,实际开发中请严格遵循约定将实例方法第一个参数命名为self,避免不必要的理解成本。

你贴的代码等效于常规写法:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def myfunc(self):
    print("Hello my name is " + self.name)

p1 = Person("John", 36)
p1.myfunc()

内容的提问来源于stack exchange,提问作者Kirin Thapar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:36:06