Я сейчас напишу очевидные вещи, но если я в чём-то буду не прав, поправьте меня. Всегда замечал, что при редактировании классов в моём коде слишком часто используется .self, а когда узнал, что обращение к атрибутам/методам класса производится как обращение к словарю по ключу-имени атрибута/метода, решил максимально возможно сократить использование этой медленной конструкции.
Например, такой код
Code
from numpy import zeros
from random import random
class MyClass():
def __init__(self):
self.count = 10
self.values = zeros((self.count, self.count), float)
for i in range(self.count):
for j in range(self.count):
self.values[i][j] = random()
def edit(self):
for i in range(self.count):
for j in range(self.count):
if i==j: self.values[i][j] = 0
else: self.values[i][j] = 1
следует исправить так:
Code
from numpy import zeros
from random import random
class MyClass():
def __init__(self):
count = self.count = 3
values = zeros((count, count), float)
for i in range(count):
for j in range(count):
values[i][j] = random()
self.values = values
def edit(self):
values = self.values
count = self.count
for i in range(count):
for j in range(count):
if i==j: values[i][j] = 0
else: values[i][j] = 1