new
(cls[, ...])
cls 클래스의 새 인스턴스를 생성하기 위해 호출됩니다. new()
은 인스턴스가 요청된 클래스를 첫 번째 인수로 사용하는 정적 메서드(특수 케이스이므로 선언할 필요가 없음)입니다. 나머지 인수는 객체 생성자 표현식(클래스 호출)에 전달된 인수입니다. new()
의 반환 값은 새 객체 인스턴스(일반적으로 cls의 인스턴스)여야 합니다.
일반적인 구현에서는 슈퍼클래스의 new()
메서드를 호출하여 클래스의 새 인스턴스를 만듭니다. <span class="pre">super(currentclass, <span class="pre">cls).new(cls[, <span class="pre">...] 사용 )<code class="docutils literal"><span class="pre">super(currentclass, <span class="pre">cls).new(cls[, <span class="pre">...])</span></span></span>
를 적절한 인수로 지정한 다음 필요에 따라 새로 생성된 인스턴스를 수정한 후 반환합니다.new()
가 init()
cls, 새 인스턴스의 <span class="pre">init(self[, <span class="pre">...])</span></span>
메서드는 <span class="pre">init(self[, <span class="pre">...])처럼 호출됩니다. <em></em></span></span>
, 여기서 new()
self
에 전달된 것과 동일합니다.new()
가 그렇지 않은 경우 init()
cls
메서드는 호출되지 않습니다.new()
는 주로 불변 유형(예: int, str 또는 튜플)을 사용하여 인스턴스 생성을 맞춤설정합니다. 또한 클래스 생성을 사용자 정의하기 위해 사용자 정의 메타클래스에서 일반적으로 재정의됩니다.调用产生一个新的类的实例,clsnew()是一个<a href="http://www.php.cn/wiki/188.html" target="_blank">静态</a>方法(不需要声明),类本身(cls)作为第一个参数,其他的的参数是传递给<a href="http://www.php.cn/wiki/60.html" target="_blank">对象</a><a href="http://www.php.cn/wiki/176.html" target="_blank">构造函数</a>的<a href="http://www.php.cn/wiki/81.html" target="_blank">表达式</a>(对类的调用),new()的返回值应该是一个新的对象实例(一般是cls的实例)。典型的实现方法就是在返回新生成的实例之前,调用父类的new()方法(super(currentclass, <span class="pre">cls).new(cls[, <span class="pre">...])</span></span>)来改变这个实例对象,比如说可以把实例里面字符的空格去掉等等(这句是我自己加的)。
.
new()是一个<a href="http://www.php.cn/wiki/188.%20html" target="_blank">静态<p>방법(不需要声明),类本身(cls)작성체第一个参数,其他的参数是传递给<a href="http://www.php.php.%20cn/wiki/60.html" target="_blank">对象</a></p></a><a href="http://www.php.cn/wiki/176.html" target="_blank">构造函数<p>的<a href="http://www.php.cn/wiki/81.html" target="_blank">表达式</a></p>(对类的调用),new()的返回值应该是一个新새로운 방식의 new() 방식이 사용되었습니다.(super(currentclass, <span class="pre">cls).new( cls[, <span class="pre">...])<p></p>) .</span></span></a>
如果new()返回了一个cls의 유형, 然后就会调用这个새로운 init()방법(init[,...]), self指新创建init() 방식은
cls에 있는 cls의 유형에 따라 다릅니다. new()는 사용자 정의에 따라 사용이 불가능합니다. 🎜>举例:현재 实例化对象之前,先将字符串做一个处理,就可以用new,下면적例子就是做一个去空格处理。class Word(str): def __new__(cls,word): if ' ' in word: print("there is qutos") word = ''.join(word.split()) return str.__new__(cls,word) a = Word('hello sherry') print(a)
위 내용은 Python 특수 메소드 new 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!