Celulares tecnologia assuntos variados PontoABC já

Introdução ao python 3

Usando o comando dir, help, e import


Introdução ao python .
3) Usando o comando dir e help, e import


O python é uma linguagem interpretada e extremamente versatil. Ela possui duas funções que são bem importantes e poderosas quando estamos trabalhando com o interpretador . Uma delas serve para verificar quais metodos e variaveis estão declaradas dentro de um modulo ou classe , esta função é a dir (obj). E a função que serve para obter ajuda sobre os metodos de um dado modulo ou classe é a função help (obj). Quando iniciamos o interpretador este só importa modulos essenciais ou seja aqueles basicos. Assim quando precisamos de outros tipos de recursos, ou seja funções , classe s nos simplesmente importamos eles de algum lugar e para isso usamos o comando import. Vamos dar uma olhada como funciona o comando import e suas variantes para importar o modulo math da biblioteca standard. Mas antes iremos especionar e testar o dir e help em cima de alguns tipos já conhecidos.

>>> dir (1)
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'conjugate', 'denominator', 'imag', 'numerator', 'real']
>>>

Veja que os numeros 4, 2, 1... são todos instancias da classe int. Assim sendo, eles possuem propriedades herdadas desta. Veja assima os metodos que o numero 1 por exemplo possui.
As funções que são como ___fmap__ isto é entre __ são metodos especiais qual são chamados
em determinadas situações tais como 2 + 1 chama o metodo __add__. Você pode reimplementa-los
ou redefini-los e então obter o comportamento desejado em uma dada situação. Isto é, você pode criar o seu próprio tipo int que poderia ter uma soma diferente doque a usual. Vou explicar
oque cada um daqueles metodos fazem mais pra frente. Vamos ver mais alguns exemplos.

>>> dir (3.2)
['__abs__', '__add__', '__class__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__int__', '__le__', '__long__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__setformat__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', 'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']
>>>

>>> x = 3.2
>>> x.is_integer()
False
>>> 4.3.is_integer()
False
>>>

Veja que acessei o metodo is_integer da instancia 4.3 que é um numero e o metodo retornou False.
Isto é, não é um integer. Vamos importar o modulo math e usar o dir nele e então aprender
um pouco sobre o modulo e suas funções usando a função help .

>>> import math
>>> dir (math)
['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'hypot', 'isinf', 'isnan', 'ldexp', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
>>>

Veja que primeiro fiz a importação do modulo e isto é feito com o comando import MODULO
o comando import tem outras sintaxes que funcionam ligeiramente diferente. Isto é , podemos importar todos os metodos que estão no modulo para o interpretador e quando tivermos de acessar os metodos e variaveis não precisaremos usar o operador '.' eles simplesmente já estarão lá.

>>> math.log(10)
2.3025850929940459
>>> math.log(10, 10)
1.0
>>>

Veja que estou acessando a função log do modulo math usando o '.' agora vou usar uma variante do import e veremos como poderemos acessar a função log.

>>> from math import log
>>> log(10, 10)
1.0
>>>

Veja que importei a função log do modulo math e então não precisei mais usar o operador '.'.
A sintax geral é from MODULO import OBJECT. Veja que poderiamos ter feito algo como.
>>> from math import log as mylog
>>> mylog(10, 10)
1.0
>>>

Isto é, estariamos importando a função log e chamando-a de mylog. Este tipo de import
é útil quando temos importado funções com nomes iguais assim uma não sobreescreve a outra no
interpretador . Ou quando as funções possuem nomes longos um exemplo é quando estamos trabalhando com fractions.Fraction que é o modulo de que suporta frações e irei explica-lo mais a frente.
No exemplo acima teria feito:

from fractions import Fraction as f

Oque certamente seria muito mais simples pra trabalhar com frações.
Veja que existe ainda uma outra variante do comando import que importa todos os metodos que estão no interior do modulo(mais a frente irei explicar como evitar este comportamento para algumas circunstancias). A forma é:

>>> from math import *
>>> tan(1.0)
1.5574077246549023
>>> pi
3.1415926535897931
>>> pow(10, 10)
10000000000.0
>>>

Veja que esta forma faz a importação de todos os metodos.
Esta maneira de importar metodos apartir de modulos dentro de outros modulos é útil as vezes. No entanto quando estamos trabalhando com muitas linhas de codigo não é interessante fazermos este tipo de importação pois poderiamos ter conflito de funções com mesmo nome. Então, tente manter uma boa pratica usando sempre o bom e velho import MODULO.
Vamos dar uma olhada no help .

help (math.log)

Help on built-in function log in module math:
log(...)
log(x[, base])

Return the logarithm of x to the given base.
If the base not specified, returns the natural logarithm (base e) of x.
(END)

Quando digitamos help (math.log) e teclamos enter no interpretador
irá aparecer uma tela que parece um manpage informando oque a função faz e a sintax dela.
È interessante que você pratique e use sempre o help e o dir pois são
muito poderosos na hora de aprender como uma função ou objeto se comporta etc.
Vá praticando o dir e o help no math tente importar outros modulos depois
e vá estudando oque eles são supostos de fazer.

0 comentários:

Postar um comentário

Faça o seu comentário e nos siga no Twitter