sti320a

勉強したことのまとめ

勉強したことのまとめ_2020年04月13日

Python

n = 65
type(n)
n.numerator
n.bit_length()
n.to_bytes(1, byteorder='little')
(10).to_bytes(1, byteorder='big')
(16).to_bytes(1, byteorder='big')
(70).to_bytes(1, byteorder='big')
  • sizeof()
l = [1,2,3,4]
l.__sizeof__() # メモリ使用量(バイト)が取得できる (72)
l = [1]
l.__sizeof__() # 48
l = [1,2]
l.__sizeof__() # 56
l = [1,2,3]
l.__sizeof__() # 64
l = []
l.__sizeof__() # 40
t = ()
t.__sizeof__() # 24
s = ''
s.__sizeof__() # 53
i = 0
i.__sizeof__() # 24

import numpy as np
n = np.ndarray((1,1))
n.__sizeof__() # 120
class Test():
  pass
c = Test()
c.__sizeof__() # 32
  • 特殊メソッドの実装
class Vector():
  def __init__(self, x=0, y=0, z=0):
    self.x = x
    self.y = y
    self.z = z

v = Vector(1, 2, 3)

class Vector(Vector):
  def __abs__(self):
    return (self.x ** 2 + self.y ** 2 + self.z ** 2) ** 0.5
  def __bool__(self):
    return bool(abs(self))

v = Vector(1, 2, -1)
v.__abs__()

abs(v)

bool(v)

class Vector(Vector):
  def __getitem__(self, i):
    if i == 'Test':
      return 'Success'
    else:
      return i

v = Vector()

v['Test']

v[15]

class Vector(Vector):
  def __getitem__(self, i):
    if i == 'Test':
      return 'Fail'
    else:
      return i

v = Vector()

v['Test']

class Vector(Vector):
  def __iter__(self):
    for i in range(3):
      yield i

v = Vector()

for i in range(3):
  print(v[i])