Learn Interfaces by Building an Equation Solver - Step 14

Tell us what’s happening:

Can’t get passed this question for some reason. Need help

Your code so far

from abc import ABC, abstractmethod

# User Editable Region

class Equation(ABC):
    degree: int
    
    def __init__(self, *args):
        if (self.degree + 1) != len(args):
            raise TypeError(
                f"'{self.__class__.__name__}' object takes {self.degree + 1} positional arguments but {len(args)} were given"
            )
        for arg in args:
            if any(not isinstance(arg, (int, float))):
                raise TypeError("Coefficients must be of type 'int' or 'float'")


# User Editable Region

    def __init_subclass__(cls):
        if not hasattr(cls, "degree"):
            raise AttributeError(
                f"Cannot create '{cls.__name__}' class: missing required attribute 'degree'"
            )
    
    @abstractmethod
    def solve(self):
        pass
        
    @abstractmethod
    def analyze(self):
        pass
        
class LinearEquation(Equation):
    degree = 1
    
    def solve(self):
        pass
    
    def analyze(self):
        pass
    
lin_eq = LinearEquation(2, 3)

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15

Challenge Information:

Learn Interfaces by Building an Equation Solver - Step 14

What does any() do here?

It seems that a for loop and any() both work on iterables, like a list of arguments.

isinstance returns a boolean, any expects an iterable.

I thought it checked to see if any of the elements is true

I keep getting this error
You should create a for loop that iterates over args after your if statement.

are you?
because your code gives this error instead

Your code raised an error before any tests could run. Please fix it and try again.

With the terminal adding TypeError: 'bool' object is not iterable

your code needs to feed an iterable (generator, list, tuple etc, comprehensions included here) to any if you want to use any, not a boolean

but, you are using a for loop. So you get one arg at a time. Why do you need any here?

Right and how many elements does arg contain?