>백엔드 개발 >파이썬 튜토리얼 >Python 특수 메소드 new 정보

Python 특수 메소드 new 정보

迷茫
迷茫원래의
2017-03-25 14:33:221664검색

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 &#39; &#39; in word:
            print("there is qutos")
            word = &#39;&#39;.join(word.split())
        return str.__new__(cls,word)
        
a = Word(&#39;hello sherry&#39;)
print(a)

위 내용은 Python 특수 메소드 new 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.