2017.7.24 정리

3435 단어
1. 깊이 복사와 얕은 복사는 한 대상의 맨 윗부분 복사이고 인용을 복사했고 복사 내용이 없다.
a = [11,22,33]
b = a
id(a)
id(b)

심층 복사는 한 대상의 모든 차원에 대한 복사이다.
import copy
a =[11,22,33]
b = copy.deepcopy(a)

만약 복사 대상이 변할 수 없다면, 깊이 복사 = 얕은 복사
2. 속성property 사용 방법 @property는 방법을 읽기 전용으로 전환하여 하나의 속성의 설정과 읽기를 실현할 수 있습니다
class Test:
         def __init__(self):  
                 self.__name = None
         @property
         def name(self):
               return self.__name
         @name.setter
         def name_set(self,value):
                self.__name = value

3. 생성기 방법 1:
L = [x for x in range(10)]  
G = (x for x in range(10))
next(G)

방법2:
def fib(times):
     n = 0
     a,b = 0,1
     while n

방법3:send를 이용하여yield에 실행할 때gen 함수 작용을 잠시 저장하고 i의 값을 되돌려준다.temp는 다음 c.send("python")을 받고,send가 보낸 값,c.next() 등가 c.send(None)
def gen():
    i = 0
    while i<5:
        temp = yield i
    print(temp)
    i+=1
def gen():
    i = 0
    while i<5:
        temp = yield i
    print(temp)
    i+=1
    
f = gen()
print(f.send(None))

4. 동적 언어 개념: 동적 프로그래밍 언어는 고급 프로그래밍 언어의 한 종류로 컴퓨터 과학 분야에서 광범위하게 응용되었다.이것은 실행할 때 구조를 바꿀 수 있는 언어이다. 예를 들어 새로운 함수, 대상, 심지어 코드가 도입될 수 있고, 기존의 함수는 삭제되거나 다른 구조상의 변화가 있을 수 있다.(1) 실행 중 객체에 속성 추가
class Test:
        def __init__(self,name):
             self.name = name

test = Test('zhangsan')
test.age = 18

(2) 실행 중 클래스에 속성 추가
class Test:
        def __init__(self,name):
             self.name = name

Test.age = 18

(3) 실행 중 클래스에 추가하는 방법
class Test:
        def __init__(self,name):
             self.name = name
def run():
      print('running......')

# 
@classmethod
def run(cls):
      print('running.....')

# 
@staticmethod
def run():
      print('running.......')

test = Test('zhangsan')

# 
import types
test.run = types.MethodType(run,test)

# 
Test.run = run

# 
Test.run = run

5, slots 제한 추가 가능한 속성
class Student:
        __slots__ = ('name','age')

6. 클래스 type 생성 클래스 type은 다음과 같이 작업할 수 있습니다. type(클래스 이름, 부모 클래스 이름으로 구성된 원조(상속된 경우 비워둘 수 있음), 속성을 포함하는 사전(이름과 값)
Test2 = type("Test2",(),{})
Foo = type('Foo', (), {'bar':True})

>>> class Foo(object):
…       bar = True

7、스팸 수거 (1) 작은 정수 탱크 파이톤의 작은 정수에 대한 정의는 [-5, 257) 이 정수 대상은 미리 만들어진 것으로 스팸 수거되지 않습니다. 파이톤의 프로그램에서 이 범위에 있는 모든 정수는 같은 대상을 사용합니다. (2) 큰 정수 탱크의 모든 큰 정수는 새로운 대상을 만듭니다. (3)인터넷 메커니즘python에는 인터넷 메커니즘이 있는데 그가'HelloWorld'가 차지하는 메모리 공간만 차지하게 한다.인용 계수로 언제 풀릴지 유지합니다.
총괄: 소정수[-5257) 공용 대상, 상주 메모리 단일 문자 공용 대상, 상주 메모리 단일 단어, 수정할 수 없음, 기본적으로 인터넷 메커니즘을 켜고 공용 대상, 인용 계수가 0이면 폐기
8. 내장 함수 맵: 함수에 따라 지정한 서열에 비추기
def f1( x, y ):  
    return (x,y)
l1 = [ 0, 1, 2, 3, 4, 5, 6 ]  
l2 = [ 'Sun', 'M', 'T', 'W', 'T', 'F', 'S' ]
l3 = map( f1, l1, l2 ) 
print(list(l3))

filter:함수는 지정된 시퀀스에 대해 필터링 작업을 수행합니다.
filter(lambda x: x%2, [1, 2, 3, 4])
[1, 3]

reduce:reduce 함수는 매개 변수 서열에 있는 요소를 누적합니다
reduce(lambda x, y: x+y, [1,2,3,4], 5)
15

좋은 웹페이지 즐겨찾기