How to detect an undefined method?
Manfred Lotz
ml_news at posteo.de
Sun Mar 27 13:07:35 EDT 2022
On 3/27/22 18:57, Kirill Ratkin wrote:
> Hi
>
> You can get all methods of your object and check the method you want to call is
> there or not.
>
> |methods = [method for method in dir(<your_object>) if
> callable(getattr(<your_object>, method))] if 'method_you_need' in methods:
> <your_object>.<method_you_need> // BR |
>
I don't understand how this may help. Assume somebody has a codebase of 15T
lines of Python code. How do you want to apply your method?
But perhaps I overlook things.
--
Manfred
> 27.03.2022 12:24, Manfred Lotz пишет:
>> Let's say I have a Python app and have used an undefined method somewhere. Let
>> us further assume I have not detected it thru my tests.
>>
>> Is there a way to detect it before deploying the app? pylint doesn't notice it.
>>
>>
>> Minimal example:
>>
>> #!/usr/bin/env python3
>>
>> import logging
>> from logging import Logger
>> from random import randrange
>>
>> def main():
>> """
>> Below logger.err gives
>>
>> 'Logger' object has no attribute 'err'
>> """
>>
>> logger = logging.getLogger('sample')
>> logger.setLevel(logging.DEBUG)
>> handler = logging.StreamHandler()
>> logger.addHandler(handler)
>>
>> num = randrange(0,1000)
>> if num == 0:
>> logger.err("got zero")
>> else:
>> logger.info(f'got a positive integer: {num}')
>>
>> if __name__ == "__main__":
>> main()
>>
>>
>>
More information about the Python-list
mailing list