9th step for python:exception && assert && import module && Package && publish module && use pip ins

  1. exception
try:
    num = int(input("请输入一个整数"))
    result = 8 / num
    print(result)
except ZeroDivisionError :
    print("不可以输入零")
except ValueError :
    print("请勿输入除整数外的字符")
except Exception as result :    #if we can not find the error ,can do like this 
    print("未知错误 %s"%result)
else : #if there is no exception ,will be excuted here.anyone exception appreaced , it can never work


finally: #it ignore wether there is a exception ,it must be worked 


  1. raise exception
def input_password():
    pwd = input("input password")
    if len(pwd) >=8:
        return pwd

    print("raise exception")

    ex = Exception("password is too short")

    raise ex
try:
    print(input_password())
except Exception as result:
    print(result)
  1. assert
def func(num, div):
    assert (div != 0), "input is error 0"# running and check the error,will stop and show this error
    return num / div
print(func(5,0))
  1. import:
import module1,module2
import module1 as m1   #when module1's name is too long can called it m1
from module import function_name #if we just need a little functions from a module, we can use this to import it ,and when we use the functions ,need not to use module's name
file: a.py(def aa())
file: b.py
from a.py import aa()
aa()
from a.py import * #it can import the whole function in a.py
if we import two module which the same name function in the two module, the latter function will rewrite the farther one.it can not rewrite after we renamed.
  1. __file__
can show where is the file 
import random
import random
if __name__ == "__main__" :

    print (__name__)
  print(random.__file__)

  1. __name__
if a module want to text it function or works to show something which need not show for the importer .we can add the "__name__" in the module for text ,"__name__" will be change to "__main__"when the module excuted by itself;will be change to "module_name"

def main() :
    print
if __name__ =="__main__" :#when we can put the text in the main function
    print
  1. Package
a Package must need one file :__init__.py , it tells the importer which function can be import
Package_name: h_message
__init__py:
from . import send_message
from . import  receive_message
 receive_message.py:
def receive():
    return "this is come from .."
send_message.py:
def send(text):
    print("%s"%text)
importer:
import h_message
print(h_message.receive_message.receive())
h_message.send_message.send("uk")

  1. publish module
create "setup.py" in the directory which include the the Package of list 6 :
 the tree like this: the root dirctory is D:\workplace\publish_mudole_text
setup.py
├─.idea
│  │  misc.xml
│  │  modules.xml
│  │  publish_mudole_text.iml
│  │  workspace.xml
│  │
│  └─inspectionProfiles
└─h_message
        receive_message.py
        send_message.py
        __init__.py


setup.py:
from distutils.core import setup

setup(
    name = "h_message",
    version="1.0",
    description="it is send and receive message module",
    author="chis",
    author_email=" changshi9527@gmail.com ",
    url="chistoiy.top",
    py_modules=["h_message.send_message",
                "h_message.receive_message"]
)
after setup.py:
D:\workplace\publish_mudole_text>python36 setup.py build
D:.
│  setup.py
├─.idea
│  │  misc.xml
│  │  modules.xml
│  │  publish_mudole_text.iml
│  │  workspace.xml
│  │
│  └─inspectionProfiles
├─ build
│  └─lib
│      └─h_message
│              receive_message.py
│              send_message.py
│              __init__.py
└─h_message
        receive_message.py
        send_message.py
        __init__.py
after this:
D:\workplace\publish_mudole_text>python36 setup.py sdist
the dirctory is :
D:\workplace\publish_mudole_text>tree /f
卷 系统 的文件夹 PATH 列表
卷序列号为 2D07-64DF
D:.
│  MANIFEST
│  setup.py
├─.idea
│  │  misc.xml
│  │  modules.xml
│  │  publish_mudole_text.iml
│  │  workspace.xml
│  │
│  └─inspectionProfiles
├─build
│  └─lib
│      └─h_message
│              receive_message.py
│              send_message.py
│              __init__.py
├─ dist
│      h_message-1.0.tar.gz
└─h_message
        receive_message.py
        send_message.py
        __init__.py

if we want to install this tar.gz module:
python36 setup.py install
>>> import h_message as h
>>> h.send_message("nihao")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
>>> h.send_message.send("nihao")
nihao
uninstall this module:
>>> print(h_message.__file__)
D:\workplace\publish_mudole_text\dist\h_message-1.0\h_message-1.0\h_message \__init__.py
delete this dictory is ok.
  1. pip install module
in linux:
for 2.x:
pip install module_name
pip uninstall module_name
for 3.x:
pip3 install module_name
pip3 install module_name
pip list#to show the list of module


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值