O.O. Style Palindrome Checker
As stated in the comments, this is not a good example for OO programming, because it can be solved with just a function. Sometimes you can still use classes to separate different functionality, but in Python this is not really required nor generally practiced (compared to e.g. Java where all code must be in a class - if we discount default methods in interfaces, static code blocks and such).

Now you've put designated two variables as fields, while they should be local to the function. There is no need at all to use them as fields. This won't directly show up as a problem, but if you'd e.g. call the method check_for_palindrome in a concurrent fashion, you'd be in trouble, because the loop field will now be used by two different threads at once. letter_count on the other hand is secure, but only because it is simply not used.

Only create fields for variable values that are intrinsic to the class (or are references that tie the class to another of which it is dependent). For instance, you might want to configure the checker to check for upper or lowercase, or maybe even mixed case. That kind of field would be logical for a palindrome checker class. All in all, you should try and minimize the variables that make up the state and thus number &amp; complexity of the fields for a particular class.

As you've already found out yourself, PalindromeChecker would be a better name for the class, as it doesn't search for palindromes, at least not at the moment. If you've got a method for a class, you don't need to repeat everything, just PalindromeChecker.check would be sufficient. I don't know why the input is called base, just input seems sufficient (edit: word would probably even be a better name).

When it comes to functionality of a class, it is important to distinguish human interaction with actual output. I'd never create a checker that would return a string as response. In this case I'd expect a bool output instead. Then the program that uses the checker can create a user response if the result is True or False. At least didn't print out the result, which would have been the action of most starting developers.

Finally, in the call to the class instance, you're trying to do too much at once:

print(palindrome_checker.check_for_palindrome(input("Enter your palindrome: ").lower()))


First assign the result to a variable and then print it out. Separate the input. You'll thank yourself if you have to startup a debugger and step through your program.