python 函数如何封装

不是不可以,只是这样做没有意义,另外变量作用域的问题,会使得操作变得很复杂

⑵ 如何创建封装python 模块库

Python模块的安装方法: 1. 单文件模块:直接把文件拷贝到$python_dir/lib 2. 多文版件模块,带setup.py:权python setup.py install 3. egg文件,类似Java的jar: 1) 下载ez_setup.py,运行python ez_setup 2) easy_install *.egg 虽然Python的模块...

⑶ 我想自己写一个python函数封装成SDK方便以后调用,但是在这个函数编写引入了不少import包,该怎么操作

写最上面。写里面有可能会重复import同一个包,浪费内存

⑷ Python 封装报错

把index添加一个参数改为 def index(self,param=None)

⑸ 怎么将python代码封装成一个程序

如何将python程序封装成exe可执行文件

将python程序直接转成exe程序的方法很多,主流的工具有PyInstaller、cx_freeze、py2exe等,论及优缺点,可谓各有千秋。然而,再好的工具在使用的时候也会遇到各种各样的问题。这里无法比较哪个好那个坏,不同工具对不同类型程序的处理能力不同,也许你用这个方法转化出来的程序出问题了,换个方法就行了。本文主要介绍py2exe的安装和使用。

py2exe的安装

  • 点此下载和64位python2.7配套版本。

  • 傻瓜式安装,就是一步一步往下点。

  • py2exe的使用

  • 将python安装路径添加到系统环境变量Path值中。(若已添加,请忽略此步)

  • 建立setup.py文件,文件中输入以下代码:

  • from distutils.core import setupimport py2exe

  • setup(console=["将要转换的文件名称.py"])123

  • 在终端(cmd)输入以下命令:
    setup.py py2exe
    这样便完成了从.py文件到 .exe文件的转换,生成的软件在dist文件夹内。

  • 这里需要注意的是:不同python程序不能一概而论,具体情况需要具体讨论。

    例:当运行出错,提示缺少sip文件时,setup.py可修改为:

  • from distutils.core import setupimport py2exe

  • setup(console=[{"script":"main.py"}], options={"py2exe":{"includes":["sip"]}})123

  • 例:当你不想dos窗口停留,需要其一闪而过时,setup.py可修改为:

  • from distutils.core import setup

  • import py2exe


  • setup(window=['name.py']) #这里console改为window那么dos窗口不出现

⑹ Python中的封装有什么作用

日常生活中可以看到很多的汽车,汽车包括车轮、发动机、车架等零部件。可以在车架上安装车轮,然后安装发动机,最后安装其他零件,刷漆。就形成了汽车。这个过程,是把各种零件放到车架上的过程。但思考一下,对于开车的人,需要关注车的内部结构吗?答案显然是否定的。汽车对外提供了方向盘、油门等去调用内部结构从而进行行驶。由这个例子可以总结出,汽车就是各种零件经过封装得到的产物,同时提供给驾驶人操控汽车需要的接口设备。这就是生活中的封装。

我们可以看到生活中的封装有很多好处。具体有如下的几条好处:

①隐藏了实现细节,在使用时没必要关注具体实现。

②安全性好,内部细节隐藏了,就不能随意破坏。

③对外提供接口方便使用。

④可维护性好,方便修改实现,修改完成后,对外接口不变,对用户使用无影响。

⑤方便重用,任何一个会开车的人都可以驾驶汽车,只要对外的接口相同就行了。

总之,封装就是将抽象得到的属性和方法形成“类”,并将类内部信息进行隐藏,对外公开接口的机制。封装限制从类外访问,从而提升代码安全性和可维护性。

封装的内涵是把抽象得到的属性和方法进行了封装,对于方法,隐藏了具体的实现,提供了方法名供使用者调用。对于成员变量也进行隐藏,通过方法对外提供访问接口。通过封装,限制了直接访问成员变量,通过方法,增加验证逻辑,提高了安全性和可维护性。

封装的外延是按照内聚性、一致性、封装性、清晰性、完整性进行类的封装。

内聚性就是类应该描述一个单一的实体。例如,学生姓名和教师所带班级不是单一实体的属性,不能组合在一个类中。

一致性就是类、成员变量、方法名要有意义,并且顺序是成员变量、构造方法、普通方法。

封装性就是类中成员变量是私有属性,通过getter/setter访问。

清晰性是指类的结构应该是易于解释和理解的。

完整性是需要充分考虑多种不同用户设计,应该能通过属性和方法提供多种方案以适应用户不同需求。例如,字符串中有很多方法,同时这些方法可以组合完成各种任务。

关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。

⑺ 我现在想把自己写的python模块源代码封装成dll,然后在别的python脚本里调用,可以吗

可以的,只要把python模块转换成dll模块,利用Python自带的ctypes模块加载调用就行。

ctypes 是Python的外部函数库。它提供了与 C语言兼容的数据类型,并允许调用 DLL 或共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装。

ctypes导出了cdll对象,在 Windows 系统中还导出了windll和oledll对象用于载入动态链接库。通过操作这些对象的属性,你可以载入外部的动态链接库。cdll载入按标准的cdecl调用协议导出的函数,而windll导入的库按stdcall调用协议调用其中的函数。

(7)python接口封装扩展阅读:

加载调用DLL的相关方法:

1、加载DLL

加载的时候要根据你将要调用的函数是符合什么调用约定的。

stdcall调用约定:两种加载方式

Objdll = ctypes.windll.LoadLibrary("dllpath")

Objdll = ctypes.WinDLL("dllpath")

cdecl调用约定:也有两种加载方式

Objdll = ctypes.cdll.LoadLibrary("dllpath")

Objdll = ctypes.CDLL("dllpath")

其实windll和cdll分别是WinDLL类和CDll类的对象。

2、调用dll中的方法

加载dll的时候会返回一个DLL对象(假设名字叫Objdll),利用该对象就可以调用dll中的方法。 e.g.如果dll中有个方法名字叫Add(注意如果经过stdcall声明的方法,如果不是用def文件声明的导出函数或者extern “C” 声明的话,编译器会对函数名进行修改,这个要注意。)

调用:nRet = Objdll.Add(12, 15) 即完成一次调用。

⑻ python3 什么是 数据封装

封装接口主要讲静态接口(无参数传入)、动态接口(有参数传入,不同参数返回的信息不同)。
针对动态接口有三种传参方式:key_value、json串和拼接方式入参!

⑼ 将下面Python代码封装成函数

Python:常用函数封装:
def is_chinese(uchar):
"""判断一个unicode是否是汉字"""
if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
return True
else:
return False

def is_number(uchar):
"""判断一个unicode是否是数字"""
if uchar >= u'\u0030' and uchar<=u'\u0039':
return True
else:
return False

def is_alphabet(uchar):
"""判断一个unicode是否是英文字母"""
if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):
return True
else:
return False

def is_other(uchar):
"""判断是否非汉字,数字和英文字符"""
if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):
return True
else:
return False

def B2Q(uchar):
"""半角转全角"""
inside_code=ord(uchar)
if inside_code<0x0020 or inside_code>0x7e: #不是半角字符就返回原来的字符
return uchar
if inside_code==0x0020: #除了空格其他的全角半角的公式为:半角=全角-0xfee0
inside_code=0x3000
else:
inside_code+=0xfee0
return unichr(inside_code)

def Q2B(uchar):
"""全角转半角"""
inside_code=ord(uchar)
if inside_code==0x3000:
inside_code=0x0020
else:
inside_code-=0xfee0
if inside_code<0x0020 or inside_code>0x7e: #转完之后不是半角字符返回原来的字符
return uchar
return unichr(inside_code)

def stringQ2B(ustring):
"""把字符串全角转半角"""
return "".join([Q2B(uchar) for uchar in ustring])

def uniform(ustring):
"""格式化字符串,完成全角转半角,大写转小写的工作"""
return stringQ2B(ustring).lower()

def string2List(ustring):
"""将ustring按照中文,字母,数字分开"""
retList=[]
utmp=[]
for uchar in ustring:
if is_other(uchar):
if len(utmp)==0:
continue
else:
retList.append("".join(utmp))
utmp=[]
else:
utmp.append(uchar)
if len(utmp)!=0:
retList.append("".join(utmp))
return retList

⑽ python 怎么封装有枚举类型的C语言编写的接口

枚举就用几个整数表示就可以了