PyFence: Python рдХреЗ рд▓рд┐рдП рд╡реЗрд░рд┐рдлрд┐рдХреЗрд╢рди рдЯрд╛рдЗрдк рдХрд░реЗрдВ



PyFence рдПрдХ рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛-рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдбреАрдмрдЧ рдХрд░рддреЗ рд╕рдордп рдЯрд╛рдЗрдк рдорд┐рд▓рд╛рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред PyFence рдорд╛рдирдХ рдбреЙрд▓реНрдлрд┐рди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╕реЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд▓реЗрдЦрди рд╣реИ, рддреЛ рдЖрдкрдХреЛ PyFence рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ!

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╡рд░реНрдЧ рд▓реЗрдВ:


class RationalFormatter (object): def format(self, number): """ Stringifies a number to numerator/denominator format Example:: >>> print(RationalFormatter().format(1.25)) 5/4 :param number: input number :type number: float :raises : None :rtype : str """ return '%i/%i' % number.as_integer_ratio() def display(self, number): print(str(number) + ' = ' + self.format(number)) 


рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдзрд┐ рдлреНрд▓реЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрдВрд╢ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ редas_integer_ratio () рд╡рд┐рдзрд┐

рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

 >>> from formatter import RationalFormatter >>> f = RationalFormatter() >>> f.display(1.25) 1.25 = 5/4 


рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ? рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдЗрдВрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдм рдХреБрдЫ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЯ , рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ редas_integer_ratio () ред

 >>> f.display(5) Traceback (most recent call last): File "example.py", line 5, in <module> f.display(5) File "/home/eugeny/Work/pyfence/example_formatter.py", line 18, in display print(str(number) + ' = ' + self.format(number)) File "/home/eugeny/Work/pyfence/example_formatter.py", line 15, in format return '%i/%i' % number.as_integer_ratio() AttributeError: 'int' object has no attribute 'as_integer_ratio' 


рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм PyFence рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрд╣реБрдд рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛:

 $ pip install pyfence ... $ fence example.py --fence:strict,stop 1.25 = 5/4 *** PyFence ERROR --------------------------- *** PyFence ERROR PyFence verification failed *** PyFence ERROR :: example_formatter.RationalFormatter.format(<example_formatter.RationalFormatter object at 0x7ff097a47d10>, 5) *** PyFence ERROR in example_formatter.py:2 *** PyFence ERROR number was 5 (int) instead of ['float'] *** PyFence ERROR Aborting 


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, PyFence рдХрд╛рд░реНрдпреЛрдВ / рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдФрд░ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реА pyfence рдореЙрдбреНрдпреВрд▓ рднреА рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдмрд╛рдбрд╝ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдмреЗрд╢рдХ, рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдмрд╛рдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЪреЗрдХ рдХреЗ рдХрд╛рд░рдг, рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рд╕рдВрднрд╡ рд╣реИред

рдореИрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛!

Source: https://habr.com/ru/post/In205134/


All Articles