关于python的实例方法问题?

我定义了一个实例方法 "__init__" 下面这段代码是正常的 那为啥把“__init__”改成“init”就不能被实例对象调用了 为啥呀?不加下划线就不是实例方法了嘛?
class Student():
def __init__(self,name,age):
self.name=name
self.age=age
std=Student(name=input('请输入名字'),age=input('请输入年龄'))
print('姓名:'+std.name+' 年龄:'+std.age)

题主你好,

python中创建新实例的时候, 如果相应的类中定义了__init__()方法的话, 会自动调用这个方法. 你可能认为名称"init"和"__init__"差不多, 但计算机其实是个很笨的东西, 它会完全按照设计去执行. 也就是说,在设计的时候就已经定死了, 默认情况下, 创建新实例的时候, 会自动调用类中定义的__init__()方法, 只要你的方法名和__init__有一点不一样也不行.

下图是我在官网上找的关于__init__()调用的简单说明:

高亮部分说的大概意思就是上面讲的,如果相应类中定义了__init__()方法,则在创建该类实例的时候会自动调用里面定义的__init__()方法.

-----

希望可以帮到题主, 欢迎追问.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-02-09

python 构造函数__init__() 和 实例属性、实例方法

一、创建对象,我们需要定义构造函数__init__()方法。构造方法用于执行"实例对象的初始化工作",即对象创建后,初始化当前对象的属性,无返回值。

__init__()要点如下:

1.名称固定,必须为__init__()

2.第一个参数固定,必须为self。self指的就是刚刚创建好的示例对象。

3.构造函数通常用来初始化示例属性,如下代码就是初始化示例属性:

4.通过类名(参数列表),来调用构造函数,调用后,将创建好的对象返回给相应的变量。

5.__init__()方法:初始化创建好的对象,初始化指的是:"给实例属性赋值"

6.__new__()方法:用于创建对象,但我们一般无需定义该方法。

相似回答