Python 类的构造方法能返回值么 ?
__int__
可以返回值么? 变量= 类()
这样写行么?
回答:
在 Python 中,类的构造方法(通常被称为 init 方法)不能直接返回值。构造方法的主要目的是在对象创建时初始化对象的属性,而不是返回值。
构造方法在创建对象时自动调用,用于初始化对象的属性。它没有显式的返回值。当使用类创建对象时,Python 会在内存中为对象分配空间,并调用构造方法来初始化对象的属性。然后,Python 返回这个新创建的对象的引用,以便在后续的代码中可以使用它。
虽然构造方法不能直接返回值,但可以通过设置对象的属性来间接实现类似的效果。例如,可以在构造方法中设置对象的属性,然后在后续的代码中通过访问这些属性来获取相应的值。
python">class Person: def __init__(self, name, age):
self.name = name
self.age = age
person1 = Person("Alice", 25) # 创建一个 Person 对象
print(person1.name) # 输出对象的 name 属性
print(person1.age) # 输出对象的 age 属性
回答:
为什么会有这样的需求,有什么原因让你必须在构造方法里返回值呢?
构造方法只是用来创建类的新实例时被调用的,如果允许你返回了一个值 哪你在类实例化过程中到底变成了什么呢?
比如你有一个 myClass类
cls = myClass() //实例化该类,如果这个时候构造方法返回了一个值,哪cls 到底应该是什么呢??
所以无论哪种语言,都不可能在构造方法中返回一个值,应该它其实就是返回了类的实例
回答:
不能够,__init__ 不能有非-None类型的返回值,否则类如何实例化。
你应该看看官网的定义和解释:
object.__init__(self[, ...])
Called after the instance has been created (by __new__()), but before it is returned to the caller. The arguments are those passed to the class constructor expression. If a base class has an __init__() method, the derived class’s __init__() method, if any, must explicitly call it to ensure proper initialization of the base class part of the instance; for example: super().__init__([args...]).
Because __new__() and __init__() work together in constructing objects (__new__() to create it, and __init__() to customize it), no non-None value may be returned by __init__(); doing so will cause a TypeError to be raised at runtime.
以上是 Python 类的构造方法能返回值么 ? 的全部内容, 来源链接: utcz.com/p/938837.html