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
相关产品推荐
相关产品推荐

