제43과 마법 방법: 반연산
연습문제(자라 공식 포럼에서)
0. 객체 플러스(a + b), a 객체에 이 있는 경우add__방법, b 대상의radd__호출될까요?
답:아니야!>>> class Nint(int):
def __radd__(self, other):
print("__radd__ !")
return int.__add__(self, other)
>>> a = Nint(5)
>>> b = Nint(3)
>>> a + b
8
>>> 1 + b
__radd__ !
4
1. 파이톤은 언제 반연산의 마법 방법을 사용합니까?
A: 예: a + b, a 객체의add__방법이 실현되지 않거나 상응하는 조작을 지원하지 않으면 파이톤은 자동으로 b의 를 호출합니다radd__방법
2. 계승된 클래스에서 기류를 어떻게 사용하는 방법을 물어보시겠습니까?
A:super()라는 BIF 함수를 사용합니다.class A(object):
def __init__(self, a=0):
self.a = a
def get(self):
return self.a
class B(A):
def __init__(self, b):
super(B, self).__init__(b)
def get(self):
return super(B, self).get()
if __name__ == '__main__':
b = B(10)
print(b.get())
3. 만약에 내가 계승하고자 하는 기본 클래스가 동적(때로는 A, 때로는 B)이라면 기본 클래스가 마음대로 수정할 수 있도록 코드를 어떻게 배치해야 합니까?
답: 당신은 먼저 기본 클래스에 별명을 정의할 수 있습니다. 클래스를 정의할 때 계승할 기본 클래스를 대신할 별명을 사용하세요.따라서 기본 클래스를 바꾸고 싶을 때, 별명이 부여한 그 문장을 수정하면 된다.참고로, 당신의 자원이 상황에 따라 결정될 때, 이 작은 기교는 매우 유용하다.BaseAlias = BaseClass #
class Derived(BaseAlias):
def meth(self):
BaseAlias.meth(self) #
...
4. 클래스의 정적 속성을 어떻게 사용하는지 스스로 예를 들어 설명한다.
답: 클래스의 정적 속성은 매우 간단합니다. 클래스에서 직접 정의한 변수(self. 없음)정적 속성입니다.인용 클래스의 정적 속성은 '클래스 이름. 속성 이름' 의 형식을 사용합니다.클래스의 정적 속성 적용(클래스가 인스턴스화된 횟수 계산):#!/usr/bin/python
# -*- coding:utf-8 -*-
class C:
count = 0 #
def __init__(self):
C.count = C.count + 1 # .
def getCount(self):
return C.count
c1 = C()
c2 = C()
print(c1.getCount())
출력:2
5. 클래스 중의 정적 방법을 어떻게 사용하는지 스스로 열거하여 설명하고 정적 방법을 사용하는 데 어떤 차이점과 주의해야 할 점이 있는지 지적해 본다.
답: 정적 방법은 클래스의 특수한 방법입니다. 정적 방법은 일반적인 방법의 앞에 @staticmethod 수식자만 추가하면 됩니다.>>> class C:
@staticmethod
def static(arg1, arg2, arg3):
print(arg1, arg2, arg3, arg1 + arg2 + arg3)
def nostatic(self):
print("I'm the fucking normal method!")
>>> c = C()
>>> c.static(1, 2, 3)
1 2 3 6
>>> c.nostatic()
I'm the fucking normal method!
>>>
정적 방법의 가장 큰 장점은 실례 대상에 연결되지 않고 다시 말하면 비용을 절약하는 것이다.>>> c1 = C()
>>> c2 = C()
>>> c1.static is C.static
True
>>> c1.nostatic is C.nostatic
False
>>> c1.static
>>> c2.static
>>> C.static
# ,
>>> c1.nostatic
>
>>> c2.nostatic
>
>>> C.nostatic
사용할 때 주의해야 할 점: 정적 방법은self 파라미터가 필요하지 않기 때문에 대상을 사용해서라도 self 파라미터는 전송되지 않습니다.>>> c.static(1, 2, 3)
1 2 3 6
>>> C.static(1, 2, 3)
1 2 3 6
프로그래밍 문제
0. 하나의 클래스를 정의하고 이 클래스를 실례화할 때 몇 개의 매개 변수가 들어왔는지 자동으로 판단하고 표시한다.
대답:>>> class C:
def __init__(self, *args):
if not args:
print(" ")
else:
print(" %d , :" % len(args), end=' ')
for each in args:
print(each, end=' ')
>>> c = C(1, 2, 3)
3 , : 1 2 3
1. 하나의 단어(Word) 클래스를 문자열에서 계승하고 비교 조작부호를 다시 쓰며 두 개의 워드 클래스 대상을 비교할 때 단어의 길이에 따라 크기를 비교한다.
가산점 요구: 실례화할 때 빈칸이 있는 문자열을 가져오면 첫 번째 빈칸 앞의 단어를 매개 변수로 합니다.
답: 가산점 요구는 중재를 통해new__방법은 (문자열이 변형되지 않기 때문에) 다시 쓰기를 통해gt__、__ lt__、__ ge__、__ le__비교 작업에서 Word 클래스의 표현을 정의하는 방법입니다.주의: 정의된 이 없습니다.eq__및ne__방법이는 Word('FishC')가 Word('Apple')와 같은 이상한 결과가 발생할 수 있기 때문입니다. 코드는 다음과 같습니다.class Word(str):
''' , '''
def __new__(cls, word):
# __new__ , str
#
if ' ' in word:
print("Value contains spaces. Truncating to first space.")
word = word[:word.index(' ')] #
return str.__new__(cls, word)
def __gt__(self, other):
return len(self) > len(other)
def __lt__(self, other):
return len(self) < len(other)
def __ge__(self, other):
return len(self) >= len(other)
def __le__(self, other):
return len(self) <= len(other)
w1 = Word('abcd')
w2 = Word('abca vsdv')
if w1 >= w2:
print(True)
출력:Value contains spaces. Truncating to first space.
True
2. 이 시간에 배운 내용을 적어 주세요. 격식에 제한이 없습니다. 회상하고 복창하는 것은 기억을 강화하는 좋은 방법입니다!
>>> class Nint(int):
def __radd__(self, other):
print("__radd__ !")
return int.__add__(self, other)
>>> a = Nint(5)
>>> b = Nint(3)
>>> a + b
8
>>> 1 + b
__radd__ !
4
A: 예: a + b, a 객체의add__방법이 실현되지 않거나 상응하는 조작을 지원하지 않으면 파이톤은 자동으로 b의 를 호출합니다radd__방법
2. 계승된 클래스에서 기류를 어떻게 사용하는 방법을 물어보시겠습니까?
A:super()라는 BIF 함수를 사용합니다.class A(object):
def __init__(self, a=0):
self.a = a
def get(self):
return self.a
class B(A):
def __init__(self, b):
super(B, self).__init__(b)
def get(self):
return super(B, self).get()
if __name__ == '__main__':
b = B(10)
print(b.get())
3. 만약에 내가 계승하고자 하는 기본 클래스가 동적(때로는 A, 때로는 B)이라면 기본 클래스가 마음대로 수정할 수 있도록 코드를 어떻게 배치해야 합니까?
답: 당신은 먼저 기본 클래스에 별명을 정의할 수 있습니다. 클래스를 정의할 때 계승할 기본 클래스를 대신할 별명을 사용하세요.따라서 기본 클래스를 바꾸고 싶을 때, 별명이 부여한 그 문장을 수정하면 된다.참고로, 당신의 자원이 상황에 따라 결정될 때, 이 작은 기교는 매우 유용하다.BaseAlias = BaseClass #
class Derived(BaseAlias):
def meth(self):
BaseAlias.meth(self) #
...
4. 클래스의 정적 속성을 어떻게 사용하는지 스스로 예를 들어 설명한다.
답: 클래스의 정적 속성은 매우 간단합니다. 클래스에서 직접 정의한 변수(self. 없음)정적 속성입니다.인용 클래스의 정적 속성은 '클래스 이름. 속성 이름' 의 형식을 사용합니다.클래스의 정적 속성 적용(클래스가 인스턴스화된 횟수 계산):#!/usr/bin/python
# -*- coding:utf-8 -*-
class C:
count = 0 #
def __init__(self):
C.count = C.count + 1 # .
def getCount(self):
return C.count
c1 = C()
c2 = C()
print(c1.getCount())
출력:2
5. 클래스 중의 정적 방법을 어떻게 사용하는지 스스로 열거하여 설명하고 정적 방법을 사용하는 데 어떤 차이점과 주의해야 할 점이 있는지 지적해 본다.
답: 정적 방법은 클래스의 특수한 방법입니다. 정적 방법은 일반적인 방법의 앞에 @staticmethod 수식자만 추가하면 됩니다.>>> class C:
@staticmethod
def static(arg1, arg2, arg3):
print(arg1, arg2, arg3, arg1 + arg2 + arg3)
def nostatic(self):
print("I'm the fucking normal method!")
>>> c = C()
>>> c.static(1, 2, 3)
1 2 3 6
>>> c.nostatic()
I'm the fucking normal method!
>>>
정적 방법의 가장 큰 장점은 실례 대상에 연결되지 않고 다시 말하면 비용을 절약하는 것이다.>>> c1 = C()
>>> c2 = C()
>>> c1.static is C.static
True
>>> c1.nostatic is C.nostatic
False
>>> c1.static
>>> c2.static
>>> C.static
# ,
>>> c1.nostatic
>
>>> c2.nostatic
>
>>> C.nostatic
사용할 때 주의해야 할 점: 정적 방법은self 파라미터가 필요하지 않기 때문에 대상을 사용해서라도 self 파라미터는 전송되지 않습니다.>>> c.static(1, 2, 3)
1 2 3 6
>>> C.static(1, 2, 3)
1 2 3 6
프로그래밍 문제
0. 하나의 클래스를 정의하고 이 클래스를 실례화할 때 몇 개의 매개 변수가 들어왔는지 자동으로 판단하고 표시한다.
대답:>>> class C:
def __init__(self, *args):
if not args:
print(" ")
else:
print(" %d , :" % len(args), end=' ')
for each in args:
print(each, end=' ')
>>> c = C(1, 2, 3)
3 , : 1 2 3
1. 하나의 단어(Word) 클래스를 문자열에서 계승하고 비교 조작부호를 다시 쓰며 두 개의 워드 클래스 대상을 비교할 때 단어의 길이에 따라 크기를 비교한다.
가산점 요구: 실례화할 때 빈칸이 있는 문자열을 가져오면 첫 번째 빈칸 앞의 단어를 매개 변수로 합니다.
답: 가산점 요구는 중재를 통해new__방법은 (문자열이 변형되지 않기 때문에) 다시 쓰기를 통해gt__、__ lt__、__ ge__、__ le__비교 작업에서 Word 클래스의 표현을 정의하는 방법입니다.주의: 정의된 이 없습니다.eq__및ne__방법이는 Word('FishC')가 Word('Apple')와 같은 이상한 결과가 발생할 수 있기 때문입니다. 코드는 다음과 같습니다.class Word(str):
''' , '''
def __new__(cls, word):
# __new__ , str
#
if ' ' in word:
print("Value contains spaces. Truncating to first space.")
word = word[:word.index(' ')] #
return str.__new__(cls, word)
def __gt__(self, other):
return len(self) > len(other)
def __lt__(self, other):
return len(self) < len(other)
def __ge__(self, other):
return len(self) >= len(other)
def __le__(self, other):
return len(self) <= len(other)
w1 = Word('abcd')
w2 = Word('abca vsdv')
if w1 >= w2:
print(True)
출력:Value contains spaces. Truncating to first space.
True
2. 이 시간에 배운 내용을 적어 주세요. 격식에 제한이 없습니다. 회상하고 복창하는 것은 기억을 강화하는 좋은 방법입니다!
class A(object):
def __init__(self, a=0):
self.a = a
def get(self):
return self.a
class B(A):
def __init__(self, b):
super(B, self).__init__(b)
def get(self):
return super(B, self).get()
if __name__ == '__main__':
b = B(10)
print(b.get())
답: 당신은 먼저 기본 클래스에 별명을 정의할 수 있습니다. 클래스를 정의할 때 계승할 기본 클래스를 대신할 별명을 사용하세요.따라서 기본 클래스를 바꾸고 싶을 때, 별명이 부여한 그 문장을 수정하면 된다.참고로, 당신의 자원이 상황에 따라 결정될 때, 이 작은 기교는 매우 유용하다.
BaseAlias = BaseClass #
class Derived(BaseAlias):
def meth(self):
BaseAlias.meth(self) #
...
4. 클래스의 정적 속성을 어떻게 사용하는지 스스로 예를 들어 설명한다.
답: 클래스의 정적 속성은 매우 간단합니다. 클래스에서 직접 정의한 변수(self. 없음)정적 속성입니다.인용 클래스의 정적 속성은 '클래스 이름. 속성 이름' 의 형식을 사용합니다.클래스의 정적 속성 적용(클래스가 인스턴스화된 횟수 계산):#!/usr/bin/python
# -*- coding:utf-8 -*-
class C:
count = 0 #
def __init__(self):
C.count = C.count + 1 # .
def getCount(self):
return C.count
c1 = C()
c2 = C()
print(c1.getCount())
출력:2
5. 클래스 중의 정적 방법을 어떻게 사용하는지 스스로 열거하여 설명하고 정적 방법을 사용하는 데 어떤 차이점과 주의해야 할 점이 있는지 지적해 본다.
답: 정적 방법은 클래스의 특수한 방법입니다. 정적 방법은 일반적인 방법의 앞에 @staticmethod 수식자만 추가하면 됩니다.>>> class C:
@staticmethod
def static(arg1, arg2, arg3):
print(arg1, arg2, arg3, arg1 + arg2 + arg3)
def nostatic(self):
print("I'm the fucking normal method!")
>>> c = C()
>>> c.static(1, 2, 3)
1 2 3 6
>>> c.nostatic()
I'm the fucking normal method!
>>>
정적 방법의 가장 큰 장점은 실례 대상에 연결되지 않고 다시 말하면 비용을 절약하는 것이다.>>> c1 = C()
>>> c2 = C()
>>> c1.static is C.static
True
>>> c1.nostatic is C.nostatic
False
>>> c1.static
>>> c2.static
>>> C.static
# ,
>>> c1.nostatic
>
>>> c2.nostatic
>
>>> C.nostatic
사용할 때 주의해야 할 점: 정적 방법은self 파라미터가 필요하지 않기 때문에 대상을 사용해서라도 self 파라미터는 전송되지 않습니다.>>> c.static(1, 2, 3)
1 2 3 6
>>> C.static(1, 2, 3)
1 2 3 6
프로그래밍 문제
0. 하나의 클래스를 정의하고 이 클래스를 실례화할 때 몇 개의 매개 변수가 들어왔는지 자동으로 판단하고 표시한다.
대답:>>> class C:
def __init__(self, *args):
if not args:
print(" ")
else:
print(" %d , :" % len(args), end=' ')
for each in args:
print(each, end=' ')
>>> c = C(1, 2, 3)
3 , : 1 2 3
1. 하나의 단어(Word) 클래스를 문자열에서 계승하고 비교 조작부호를 다시 쓰며 두 개의 워드 클래스 대상을 비교할 때 단어의 길이에 따라 크기를 비교한다.
가산점 요구: 실례화할 때 빈칸이 있는 문자열을 가져오면 첫 번째 빈칸 앞의 단어를 매개 변수로 합니다.
답: 가산점 요구는 중재를 통해new__방법은 (문자열이 변형되지 않기 때문에) 다시 쓰기를 통해gt__、__ lt__、__ ge__、__ le__비교 작업에서 Word 클래스의 표현을 정의하는 방법입니다.주의: 정의된 이 없습니다.eq__및ne__방법이는 Word('FishC')가 Word('Apple')와 같은 이상한 결과가 발생할 수 있기 때문입니다. 코드는 다음과 같습니다.class Word(str):
''' , '''
def __new__(cls, word):
# __new__ , str
#
if ' ' in word:
print("Value contains spaces. Truncating to first space.")
word = word[:word.index(' ')] #
return str.__new__(cls, word)
def __gt__(self, other):
return len(self) > len(other)
def __lt__(self, other):
return len(self) < len(other)
def __ge__(self, other):
return len(self) >= len(other)
def __le__(self, other):
return len(self) <= len(other)
w1 = Word('abcd')
w2 = Word('abca vsdv')
if w1 >= w2:
print(True)
출력:Value contains spaces. Truncating to first space.
True
2. 이 시간에 배운 내용을 적어 주세요. 격식에 제한이 없습니다. 회상하고 복창하는 것은 기억을 강화하는 좋은 방법입니다!
#!/usr/bin/python
# -*- coding:utf-8 -*-
class C:
count = 0 #
def __init__(self):
C.count = C.count + 1 # .
def getCount(self):
return C.count
c1 = C()
c2 = C()
print(c1.getCount())
2
답: 정적 방법은 클래스의 특수한 방법입니다. 정적 방법은 일반적인 방법의 앞에 @staticmethod 수식자만 추가하면 됩니다.
>>> class C:
@staticmethod
def static(arg1, arg2, arg3):
print(arg1, arg2, arg3, arg1 + arg2 + arg3)
def nostatic(self):
print("I'm the fucking normal method!")
>>> c = C()
>>> c.static(1, 2, 3)
1 2 3 6
>>> c.nostatic()
I'm the fucking normal method!
>>>
정적 방법의 가장 큰 장점은 실례 대상에 연결되지 않고 다시 말하면 비용을 절약하는 것이다.
>>> c1 = C()
>>> c2 = C()
>>> c1.static is C.static
True
>>> c1.nostatic is C.nostatic
False
>>> c1.static
>>> c2.static
>>> C.static
# ,
>>> c1.nostatic
>
>>> c2.nostatic
>
>>> C.nostatic
사용할 때 주의해야 할 점: 정적 방법은self 파라미터가 필요하지 않기 때문에 대상을 사용해서라도 self 파라미터는 전송되지 않습니다.
>>> c.static(1, 2, 3)
1 2 3 6
>>> C.static(1, 2, 3)
1 2 3 6
프로그래밍 문제
0. 하나의 클래스를 정의하고 이 클래스를 실례화할 때 몇 개의 매개 변수가 들어왔는지 자동으로 판단하고 표시한다.
대답:>>> class C:
def __init__(self, *args):
if not args:
print(" ")
else:
print(" %d , :" % len(args), end=' ')
for each in args:
print(each, end=' ')
>>> c = C(1, 2, 3)
3 , : 1 2 3
1. 하나의 단어(Word) 클래스를 문자열에서 계승하고 비교 조작부호를 다시 쓰며 두 개의 워드 클래스 대상을 비교할 때 단어의 길이에 따라 크기를 비교한다.
가산점 요구: 실례화할 때 빈칸이 있는 문자열을 가져오면 첫 번째 빈칸 앞의 단어를 매개 변수로 합니다.
답: 가산점 요구는 중재를 통해new__방법은 (문자열이 변형되지 않기 때문에) 다시 쓰기를 통해gt__、__ lt__、__ ge__、__ le__비교 작업에서 Word 클래스의 표현을 정의하는 방법입니다.주의: 정의된 이 없습니다.eq__및ne__방법이는 Word('FishC')가 Word('Apple')와 같은 이상한 결과가 발생할 수 있기 때문입니다. 코드는 다음과 같습니다.class Word(str):
''' , '''
def __new__(cls, word):
# __new__ , str
#
if ' ' in word:
print("Value contains spaces. Truncating to first space.")
word = word[:word.index(' ')] #
return str.__new__(cls, word)
def __gt__(self, other):
return len(self) > len(other)
def __lt__(self, other):
return len(self) < len(other)
def __ge__(self, other):
return len(self) >= len(other)
def __le__(self, other):
return len(self) <= len(other)
w1 = Word('abcd')
w2 = Word('abca vsdv')
if w1 >= w2:
print(True)
출력:Value contains spaces. Truncating to first space.
True
2. 이 시간에 배운 내용을 적어 주세요. 격식에 제한이 없습니다. 회상하고 복창하는 것은 기억을 강화하는 좋은 방법입니다!
>>> class C:
def __init__(self, *args):
if not args:
print(" ")
else:
print(" %d , :" % len(args), end=' ')
for each in args:
print(each, end=' ')
>>> c = C(1, 2, 3)
3 , : 1 2 3
가산점 요구: 실례화할 때 빈칸이 있는 문자열을 가져오면 첫 번째 빈칸 앞의 단어를 매개 변수로 합니다.
답: 가산점 요구는 중재를 통해new__방법은 (문자열이 변형되지 않기 때문에) 다시 쓰기를 통해gt__、__ lt__、__ ge__、__ le__비교 작업에서 Word 클래스의 표현을 정의하는 방법입니다.주의: 정의된 이 없습니다.eq__및ne__방법이는 Word('FishC')가 Word('Apple')와 같은 이상한 결과가 발생할 수 있기 때문입니다. 코드는 다음과 같습니다.class Word(str):
''' , '''
def __new__(cls, word):
# __new__ , str
#
if ' ' in word:
print("Value contains spaces. Truncating to first space.")
word = word[:word.index(' ')] #
return str.__new__(cls, word)
def __gt__(self, other):
return len(self) > len(other)
def __lt__(self, other):
return len(self) < len(other)
def __ge__(self, other):
return len(self) >= len(other)
def __le__(self, other):
return len(self) <= len(other)
w1 = Word('abcd')
w2 = Word('abca vsdv')
if w1 >= w2:
print(True)
출력:Value contains spaces. Truncating to first space.
True
2. 이 시간에 배운 내용을 적어 주세요. 격식에 제한이 없습니다. 회상하고 복창하는 것은 기억을 강화하는 좋은 방법입니다!
class Word(str):
''' , '''
def __new__(cls, word):
# __new__ , str
#
if ' ' in word:
print("Value contains spaces. Truncating to first space.")
word = word[:word.index(' ')] #
return str.__new__(cls, word)
def __gt__(self, other):
return len(self) > len(other)
def __lt__(self, other):
return len(self) < len(other)
def __ge__(self, other):
return len(self) >= len(other)
def __le__(self, other):
return len(self) <= len(other)
w1 = Word('abcd')
w2 = Word('abca vsdv')
if w1 >= w2:
print(True)
Value contains spaces. Truncating to first space.
True
정의
__ radd__(self, other)
덧셈을 정의하는 행위: + (왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됨)
__ rsub__(self, other)
뺄셈을 정의하는 행위: - (왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됨)
__ rmul__(self, other)
곱셈 동작을 정의합니다: * (왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됩니다)
__ rtruediv__(self, other)
진제법의 행동을 정의합니다:/(왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됩니다)
__ rfloordiv__(self, other)
정수 나눗셈을 정의하는 행위://(왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됨)
__ rmod__(self, other)
추출 알고리즘의 행동을 정의합니다:% (왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됨)
__ rdivmod__(self, other)
divmod () 로 호출될 때의 행동을 정의합니다. (왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됩니다.)
__ rpow__(self, other)
파워 ()에 호출되거나 ** 연산될 때의 행동을 정의합니다. (왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됩니다.)
__ rlshift__(self, other)
비트별 왼쪽 이동 동작 정의:<
__ rrshift__(self, other)
비트별로 오른쪽으로 이동하는 행위를 정의합니다: >> (왼쪽 동작 수가 해당하는 동작을 지원하지 않을 때 호출됩니다)
__ rand__(self, other)
비트와 조작의 행동을 정의합니다: & (왼쪽 동작 수가 해당하는 조작을 지원하지 않을 때 호출됨)
__ rxor__(self, other)
비트레이트 또는 조작의 행동을 정의합니다: ^ (왼쪽 동작 수가 해당하는 조작을 지원하지 않을 때 호출됨)
__ ror__(self, other)
비트나 조작의 행위를 정의합니다: 곤 (왼쪽 조작 수가 상응하는 조작을 지원하지 않을 때 호출됨)
반연산 마법 방법을 다시 쓸 때는 반드시 조작수의 순서에 주의해야 한다!
정의
__ iadd__(self, other)
값 덧셈을 정의하는 동작: +=
__ isub__(self, other)
값 마이너스 동작을 정의합니다. -=
__ imul__(self, other)
대입 곱셈의 동작을 정의합니다:*=
__ itruediv__(self, other)
값 진짜 나누기 동작을 정의합니다:/=
__ ifloordiv__(self, other)
할당 정수 나눗셈의 동작을 정의합니다://=
__ imod__(self, other)
값 추출 알고리즘을 정의하는 행위:%=
__ ipow__(self, other)
대입 멱 연산의 동작을 정의합니다. **=
__ ilshift__(self, other)
비트별로 왼쪽으로 값을 이동하는 행위를 정의합니다: << =
__ irshift__(self, other)
비트별로 오른쪽으로 값을 이동하는 행위를 정의합니다: >>=
__ iand__(self, other)
비트와 조작에 따라 값을 부여하는 행위를 정의합니다: & =
__ ixor__(self, other)
비트레이트나 조작에 대한 값을 정의하는 행위: ^ =
__ ior__(self, other)
값의 위치별 또는 조작 행위를 정의합니다: 곤 =
정의
__ neg__(self)
양수 기호의 동작 정의: +x
__ pos__(self)
음수 기호의 동작 정의: -x
__ abs__(self)
abs () 에 호출될 때의 행동을 정의합니다
__ invert__(self)
비트별로 반전하는 행위 정의: ~x
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.