Size: a a a

2020 December 22

楽園松本 in Python
Uladzislau Safronau
Добрый день, я не пишу профессионально на питоне, возник вопрос

есть класс в либе  ImmutableDenseMatrix.

https://github.com/sympy/sympy/blob/master/sympy/matrices/immutable.py

Как мне в наследнике переопределить его конструктор таким образом, чтобы создать новую переменную внутри обьекта и больше ничего не менять?
def __init__ (self, new_var):
  self.new_var = new_var
  selfclass.__init__(self)
источник

k

k4leg in Python
楽園松本
Специально создавать модуль copy, да ещё метод deepcopy, который был бы просто враппером мною же написанного метода __copy__ -- не это ли идиотизм?
Думаю, что если был бы способ нормально это реализовать, то давно бы сделали. Наверняка есть какие-либо ограничения.
источник

US

Uladzislau Safronau in Python
楽園松本
def __init__ (self, new_var):
  self.new_var = new_var
  selfclass.__init__(self)
исходный конструктор как-то принимает список и я не хочу этого менять, а просто создать внутренню переменную, но прокинуть таким способом не получается
источник

k

k4leg in Python
Uladzislau Safronau
Добрый день, я не пишу профессионально на питоне, возник вопрос

есть класс в либе  ImmutableDenseMatrix.

https://github.com/sympy/sympy/blob/master/sympy/matrices/immutable.py

Как мне в наследнике переопределить его конструктор таким образом, чтобы создать новую переменную внутри обьекта и больше ничего не менять?
Может лучше книжку какую-либо читать последовательно (ну или искать какую-либо информацию в ней)?
class A(B):
   def __init__(self, *args, **kwargs):
       B.__init__(self, *args, **kwargs)
       # expressions
источник

楽園松本 in Python
Uladzislau Safronau
исходный конструктор как-то принимает список и я не хочу этого менять, а просто создать внутренню переменную, но прокинуть таким способом не получается
Не понимаю, что не работает
источник

H

Human in Python
а = str(input("Input some words: "))

print(a.split())


File "main.py", line 3, in <module>
   print(a.split())
NameError: name 'a' is not defined

Почему выдает ошибку?
источник

US

Uladzislau Safronau in Python
k4leg
Может лучше книжку какую-либо читать последовательно (ну или искать какую-либо информацию в ней)?
class A(B):
   def __init__(self, *args, **kwargs):
       B.__init__(self, *args, **kwargs)
       # expressions
TypeError: object.init() takes exactly one argument (the instance to initialize)
источник

k

k4leg in Python
Uladzislau Safronau
TypeError: object.init() takes exactly one argument (the instance to initialize)
Ну так наследуйся не от object, а от того, что хотел.
источник

k

k4leg in Python
Human
а = str(input("Input some words: "))

print(a.split())


File "main.py", line 3, in <module>
   print(a.split())
NameError: name 'a' is not defined

Почему выдает ошибку?
Потому-что на английском надо писать.
источник

楽園松本 in Python
Human
а = str(input("Input some words: "))

print(a.split())


File "main.py", line 3, in <module>
   print(a.split())
NameError: name 'a' is not defined

Почему выдает ошибку?
Потому что у тебя a разными буквами
источник

US

Uladzislau Safronau in Python
k4leg
Ну так наследуйся не от object, а от того, что хотел.
```
class CustomImmutableMatrix(ImmutableMatrix):

   def __init__(self, *args, **kwargs):
       ImmutableMatrix.init(self, *args, **kwargs)
       self.history = []

    def _eval_row_op_multiply_row_by_const(self, row, k):
       #print("r" + str(row) + " * " + str(k))
       arrow_latex = self.multiply_latex(row, k)        
       result = MatrixReductions._eval_row_op_multiply_row_by_const(self, row, k)
       self.history.append("&&" + arrow_latex + matrix_latex(result))
       return result
```
источник

US

Uladzislau Safronau in Python
падает на m = CustomImmutableMatrix([1, 2, 3])
источник

k

k4leg in Python
Uladzislau Safronau
```
class CustomImmutableMatrix(ImmutableMatrix):

   def __init__(self, *args, **kwargs):
       ImmutableMatrix.init(self, *args, **kwargs)
       self.history = []

    def _eval_row_op_multiply_row_by_const(self, row, k):
       #print("r" + str(row) + " * " + str(k))
       arrow_latex = self.multiply_latex(row, k)        
       result = MatrixReductions._eval_row_op_multiply_row_by_const(self, row, k)
       self.history.append("&&" + arrow_latex + matrix_latex(result))
       return result
```
Двойные подчёркивания лишние как понял?
источник

楽園松本 in Python
Uladzislau Safronau
```
class CustomImmutableMatrix(ImmutableMatrix):

   def __init__(self, *args, **kwargs):
       ImmutableMatrix.init(self, *args, **kwargs)
       self.history = []

    def _eval_row_op_multiply_row_by_const(self, row, k):
       #print("r" + str(row) + " * " + str(k))
       arrow_latex = self.multiply_latex(row, k)        
       result = MatrixReductions._eval_row_op_multiply_row_by_const(self, row, k)
       self.history.append("&&" + arrow_latex + matrix_latex(result))
       return result
```
Init с двумя подчёрками
источник

H

Human in Python
k4leg
Потому-что на английском надо писать.
ай дурак, спасибо
источник

US

Uladzislau Safronau in Python
k4leg
Двойные подчёркивания лишние как понял?
не, это сожрал телеграм
источник

US

Uladzislau Safronau in Python
за курсив принял
источник

楽園松本 in Python
Когда постишь в телеграм код, оформи его тремя апострофами слева и справа.
источник

楽園松本 in Python
Uladzislau Safronau
```
class CustomImmutableMatrix(ImmutableMatrix):

   def __init__(self, *args, **kwargs):
       ImmutableMatrix.init(self, *args, **kwargs)
       self.history = []

    def _eval_row_op_multiply_row_by_const(self, row, k):
       #print("r" + str(row) + " * " + str(k))
       arrow_latex = self.multiply_latex(row, k)        
       result = MatrixReductions._eval_row_op_multiply_row_by_const(self, row, k)
       self.history.append("&&" + arrow_latex + matrix_latex(result))
       return result
```
Внутри __init__ ты вызываешь init тоже с подчёрками?
источник

US

Uladzislau Safronau in Python
да
источник