Python炫技操作,小白秒变大神

程序员的你,有哪些炫技的代码写法? 你是否曾在编程的世界中感到迷茫?面对冗长的代码和复杂的逻辑,你有没有想过:如何让编程更具美感、更加高效?今天,我们就来聊聊程序员可以通过什么样的“炫技”代码写法,让代码既简洁又易懂,赋予其内在的灵动美感。 阅读详情

01   直接 import

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:961562169

人尽皆知的方法,直接导入即可。

>>> import os
>>> os.getcwd()
'/home/wangbm'


与此类似的还有,不再细讲

import ...
import ... as ...
from ... import ...
from ... import ... as ...

一般情况下,使用 import 语句导入模块已经够用的。

但是在一些特殊场景中,可能还需要其他的导入方式。

下面我会一一地给你介绍。

02   使用 __import__

__import__ 函数可用于导入模块,import 语句也会调用函数。其定义为:

__import__(name[, globals[, locals[, fromlist[, level]]]])

参数介绍:

  • name (required): 被加载 module 的名称。

  •  
  • globals (optional): 包含全局变量的字典,该选项很少使用,采用默认值 global()。

  •  
  • locals (optional): 包含局部变量的字典,内部标准实现未用到该变量,采用默认值 - local()。

  •  
  • fromlist (Optional): 被导入的 submodule 名称。

  •  
  • level (Optional): 导入路径选项,Python 2 中默认为 -1,表示同时支持 absolute import 和 relative import。Python 3 中默认为 0,表示仅支持 absolute import。如果大于 0,则表示相对导入的父目录的级数,即 1 类似于 '.',2 类似于 '..'。

使用示例如下:

>>> os = __import__('os')
>>> os.getcwd()
'/home/wangbm'

如果要实现 import xx as yy 的效果,只要修改左值即可。

如下示例,等价于 import os as myos:

>>> myos = __import__('os')
>>> myos.getcwd()
'/home/wangbm'

03   使用 importlib

importlib 是 Python 中的一个标准库,importlib 能提供的功能非常全面。

它的简单示例:

>>> import importlib
>>> myos=importlib.import_module("os")
>>> myos.getcwd()
'/home/wangbm'

如果要实现 import xx as yy效果,可以这样。

>>> import importlib
>>> 
>>> myos = importlib.import_module("os")
>>> myos.getcwd()
'/home/wangbm'

04   使用 imp

imp 模块提供了一些 import 语句内部实现的接口。例如模块查找(find_module)、模块加载(load_module)等等(模块的导入过程会包含模块查找、加载、缓存等步骤)。

可以用该模块来简单实现内建的 __import__ 函数功能:

>>> import imp
>>> file, pathname, desc = imp.find_module('os')
>>> myos = imp.load_module('sep', file, pathname, desc)
>>> myos
<module 'sep' from '/usr/lib64/python2.7/os.pyc'>
>>> myos.getcwd()
'/home/wangbm'

从 python 3 开始,内建的 reload 函数被移到了 imp 模块中。而从 Python 3.4 开始,imp 模块被否决,不再建议使用, 其包含的功能被移到了 importlib 模块下。

即从 Python 3.4 开始,importlib 模块是之前 imp 模块和 importlib 模块的合集。

05  使用 execfile

在 Python 2 中有一个 execfile 函数,利用它可以用来执行一个文件。

语法如下:

execfile(filename[, globals[, locals]])

参数有这么几个:

  • filename:文件名。

  • globals:变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。

  • locals:变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

>>> execfile("/usr/lib64/python2.7/os.py")
>>> 
>>> getcwd()
'/home/wangbm'

06   使用 exec

execfile 只能在 Python2 中使用,Python 3.x 里已经删除了这个函数。

但是原理值得借鉴,你可以使用 open … read  读取文件内容,然后再用 exec 去执行模块。

示例如下:

>>> with open("/usr/lib64/python2.7/os.py", "r") as f:
...     exec(f.read())
... 
>>> getcwd()
'/home/wangbm'

07   import_from_github_com

有一个包叫做 import_from_github_com,从名字上很容易得知,它是一个可以从 github 下载安装并导入的包。

为了使用它,你需要做的就是按照如下命令使用pip 先安装它。

$ python3 -m pip install import_from_github_com

这个包使用了PEP 302中新的引入钩子,允许你可以从github上引入包。这个包实际做的就是安装这个包并将它添加到本地。

你需要 Python 3.2 或者更高的版本,并且 git 和 pip 都已经安装才能使用这个包。

pip 要保证是较新版本,如果不是请执行如下命令进行升级。

$ python3 -m pip install --upgrade pip

确保环境 ok 后,你就可以在 Python shell 中使用

import_from_github_com

示例如下

>>> from github_com.zzzeek import sqlalchemy
Collecting git+https://github.com/zzzeek/sqlalchemy
Cloning https://github.com/zzzeek/sqlalchemy to /tmp/pip-acfv7t06-build
Installing collected packages: SQLAlchemy
Running setup.py install for SQLAlchemy ... done
Successfully installed SQLAlchemy-1.1.0b1.dev0
>>> locals()
{'__builtins__': <module 'builtins' (built-in)>, '__spec__': None,
'__package__': None, '__doc__': None, '__name__': '__main__',
'sqlalchemy': <module 'sqlalchemy' from '/usr/local/lib/python3.5/site-packages/\
sqlalchemy/__init__.py'>,
'__loader__': <class '_frozen_importlib.BuiltinImporter'>}
>>>

看了 import_from_github_com的源码后,你会注意到它并没有使用importlib。

实际上,它的原理就是使用 pip 来安装那些没有安装的包,然后使用Python的__import__()函数来引入新安装的模块。

08  远程导入模块

示例代码如下:

# 新建一个 py 文件(my_importer.py),内容如下
import sys
import importlib
import urllib.request as urllib2


class UrlMetaFinder(importlib.abc.MetaPathFinder):
    def __init__(self, baseurl):
        self._baseurl = baseurl




    def find_module(self, fullname, path=None):
        if path is None:
            baseurl = self._baseurl
        else:
            # 不是原定义的url就直接返回不存在
            if not path.startswith(self._baseurl):
                return None
            baseurl = path


        try:
            loader = UrlMetaLoader(baseurl)
            return loader
        except Exception:
            return None


class UrlMetaLoader(importlib.abc.SourceLoader):
    def __init__(self, baseurl):
        self.baseurl = baseurl


    def get_code(self, fullname):
        f = urllib2.urlopen(self.get_filename(fullname))
        return f.read()


    def get_data(self):
        pass


    def get_filename(self, fullname):
        return self.baseurl + fullname + '.py'


def install_meta(address):
    finder = UrlMetaFinder(address)
    sys.meta_path.append(finder)

并且在远程服务器上开启 http 服务(为了方便,我仅在本地进行演示),并且手动编辑一个名为 my_info 的 python 文件,如果后面导入成功会打印 ok。

$ mkdir httpserver && cd httpserver
$ cat>my_info.py<EOF
name='wangbm'
print('ok')
EOF
$ cat my_info.py
name='wangbm'
print('ok')
$
$ python3 -m http.server 12800
Serving HTTP on 0.0.0.0 port 12800 (http://0.0.0.0:12800/) ...
...

一切准备好,验证开始。

>>> from my_importer import install_meta
>>> install_meta('http://localhost:12800/') # 往 sys.meta_path 注册 finder
>>> import my_info  # 打印ok,说明导入成功
ok
>>> my_info.name  # 验证可以取得到变量
'wangbm'

好了,8 种方法都给大家介绍完毕,对于普通开发者来说,其实只要掌握 import 这种方法足够了,而对于那些想要自己开发框架的人来说,深入学习 __import__ 以及 importlib 是非常有必要的。

别再手动点按钮了!用C#给PowerMill做个自动化小助手(附完整源码) 本文详细介绍了如何使用C#进行PowerMill二次开发,打造自动化助手以提升CAM工程师的工作效率。通过实战案例和完整源码,展示了从环境配置到核心功能实现的完整流程,包括智能连接模块、项目批量处理器和刀路智能分析器等高级功能开发。 阅读详情

相关推荐

ArcGIS栅格拼接全攻略:从核心原理到色彩平衡与大数据处理

在GIS数据处理中,栅格拼接是一项基础且关键的操作,其本质是将多幅具有重叠区域的栅格图像无缝整合为一张完整地图。该技术涉及空间参考统一、像元对齐与色彩融合等核心原理,是构建连续地理空间数据的基石。其技术价值在于保障数据完整性、提升可视化效果,并为后续的空间分析提供可靠底图。在遥感影像处理、数字高程模型构建及地图制图等应用场景中,高质量的拼接成果至关重要。本文聚焦于ArcGIS平台,深入解析其栅格拼接工具,并针对常见的色彩不一致与大数据量处理难题,提供了基于**色彩平衡**和**金字塔**优化的实战解决方案,

weixin_33158887的博客 263

python库引用的3种方式比较

方法一 import 库名 <库名>.<函数名>(<函数参数>) 方法二 from 库名 import 函数名/* <函数名>(<函数参数>) 第一种方法可以避免第三方库函数和自定义函数重名 第二种更简洁,适用于引用的库少 方法三 给库起小名 import 库名 as 库别名 <库别名>.<函数名>(<函数参数>) 出处:北理工Python慕课 ...

行步至春深 2496

Orale EBS R12 AP应付模块 发票导入接口(Interface)

ap_interface_groups_s.nextval; ap_invoices_interface_s.nextval; ap_invoice_lines_interface_s.nextval; SELECT * FROM ap_invoices_interface ih; SELECT * FROM ap_invoice_lines_interface il; SELECT * FROM...

qq_41206741的博客 3320

python对库函数的引用方法

python引入库的方法有很多种,这里主要介绍一下其中的两种: 第一种引用方式:在程序头部增加: 如:import<库名> 例如:import turtle >>>import turtle >>>turtle.fd(30) 这种方式引用库函数需要输入<库名>.<函数名>(库名点函数名) 第二种引用方式: fr...

晴空๓ 9314

OTN设备核心知识速记

本文章为工作笔记,若有错误,还需大家指正。不定期更新。

Hiddengold的博客 2650

零基础手把手教你做FMEDA

本文通过分步骤手把手来教大家具体如何做FMEDA,希望对工作中要做FMEDA的童鞋有帮助。对于工作当中用不到FMEDA的童鞋,也可以作为科普知识,更好地了解一下FMEDA及硬件功能安全。

NewCarRen的博客 9935

python学习记录4——库的引用

Python提供了许多内置库和第三方库,可以帮助开发人员更快地编写代码。在Python中,要使用库,需要先引用它们。

weixin_51418895的博客 3656

OpenCV简单应用:图像模糊处理

OpenCV是一个广泛使用的开源计算机视觉库,提供了丰富的图像处理和计算机视觉算法。本文将介绍如何使用OpenCV对图像进行模糊处理,并提供相应的源代码。该函数接受两个参数:第一个参数是输入图像,第二个参数是指定模糊核大小的元组。在这个例子中,我们使用了一个5x5的模糊核。您可以尝试不同大小的模糊核,以获得不同程度的模糊效果。函数和指定不同大小的模糊核,我们可以实现不同程度的模糊效果。该函数接受两个参数:第一个参数是窗口的名称,第二个参数是要显示的图像。在上面的代码中,我们首先使用。要运行上述代码,请将。

MwgmPhilosophy的博客 290

python库引用得几种方法 2021 8 23

方法一: import<库名>as<库别名> <库别名>.<函数名> (注意中间有个".") 使用这种语法格式的 import 语句,会导入指定库中的所有成员(包括变量、函数、类等)。使用模块中的成员时,需用该模块名(或别名)作为前缀,否则 Python 解释器会报错。 例如: import math as m m.pi--------- 圆周率 m.ceil(x)------- 对X向上取整 m.floor(x)-------对X向下取整 m.p

m0_51503599的博客 2516

2、MOSFET基本物理效应及其BSIM4模型解析

本文深入探讨了MOSFET的基本物理效应及其在BSIM4模型中的数学表述,涵盖门和沟道的几何结构、温度依赖性、材料模型选项、阈值电压计算、以及其他关键物理效应如LDD电阻、有限电荷厚度、有效迁移率等。同时解析了机械应力、邻近效应及布局依赖效应对MOSFET性能的影响,并通过参数表和建模流程提供了精确建模的指导,旨在帮助读者优化MOSFET器件性能与可靠性。

purple的博客 566

【Matlab】从零开始掌握 MATLAB 安装激活:从环境搭建到问题解决全指南

打开 MATLAB,点击 “主页 - 设置路径”;点击 “添加文件夹”,选择自定义的工作文件夹,点击 “保存”,重启 MATLAB 生效。MATLAB R2024a 的安装与激活是开启 MATLAB 学习的第一步,也是构建稳定学习环境的基础。本文从安装前准备、分步操作、验证测试、问题解决到环境优化,完整覆盖了新手所需的所有知识点 —— 核心要点在于:确认系统兼容、使用合法授权、选择纯英文安装路径、完成功能验证。

unber的博客 596

pod引用第三方库的几种方式

前言 pod引用库的原理,本质上是去找.podspec文件,podspec中包含库的地址及最新的版本号(tag标签),如果pod时没有指定版本,则pod install时会去下载podspec文件中指定的最新版本,如果pod时指定了版本规则,则pod install会按照此版本规则去下载指定的版本 例如想引用YBUtils这个库,有三种方法: 1. 直接从官方的pod repo中引用 pod 'YBUtils' //引用该库的最新版本 pod 'YBUtils', '~>0.1.0' //引用该

Rey的技术博客 3652

10、高阶ΣΔ调制器设计与优化

本文深入探讨了高阶ΣΔ调制器的设计与优化技术,重点介绍了NTF零点优化方法,通过分散单位圆上的零点分布提升信噪失真比(SQNR)。文章分析了量化噪声耦合技术如何有效提高噪声整形阶数,并对比了CIFB、CIFF、CRFB和CRFF等不同架构的性能特点。同时,详细阐述了基于稳定性与性能权衡的设计流程,结合Schreier的Delta-Sigma Toolbox实现NTF综合与仿真验证。内容涵盖从理论推导到实际设计步骤,为高阶ΣΔ调制器的稳定性提升与性能优化提供了系统性指导。

tgb345678的博客 135

python在哪里操作_Python炫技操作,小白秒变大神

人尽皆知的方法,直接导入即可。>>> import os>>> os.getcwd()"/home/wangbm"与此类似的还有,不再细讲import ...import ... as ...from ... import ...from ... import ... as ...一般情况下,使用 import 语句导入模块已经够用的。但是在一些特殊场景中,可能...

weixin_36329368的博客 127

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python大神和小白代码_Python炫技操作,小白秒变大神

人尽皆知的方法,直接导入即可。>>> import os>>> os.getcwd()'/home/wangbm'与此类似的还有,不再细讲import ...import ... as ...from ... import ...from ... import ... as ...一般情况下,使用 import 语句导入模块已经够用的。但是在一些特殊场景中,可能还需要其他的导入方式。下面我会一一地...

weixin_39754142的博客 220

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python 炫技操作:条件语句的七种写法

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文来自腾讯云 作者:龙哥 有的人说 Python 入门容易,但是精通难的语言,这点我非常赞同。 Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。 但你要知道,在团队合作里,炫技是大忌。 为什么这么说呢?我说下自己的看法: 越简洁的代码,越清晰的逻辑,就越不容易出错;

weixin_49345590的博客 98

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Python炫技操作:条件语句的七种写法

作者 | 写代码的明哥来源 | Python编程时光有的人说 Python 入门容易,但是精通难的语言,这点我非常赞同。Python 语言里有许多(而且是越来越多)的高级特性,是 Py...

AI科技大本营 859

python进阶,16个必须掌握的炫技操作

python进阶,16个必须掌握的炫技操作

2301_78095812的博客 408

Python炫技操作

点击上方蓝色小字,关注“涛哥聊Python”重磅干货,第一时间送达01直接 import人尽皆知的方法,直接导入即可。>>> import os >>&g...

涛哥聊Python 539

让人想骂街的 Python 炫技操作:条件语句的七种写法

有的人说 Python 入门容易,但是精通难的语言,这点我非常赞同。 Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。 但你要知道,在团队合作里,炫技是大忌。 为什么这么说呢?我说下自己的看法: 越简洁的代码,越清晰的逻辑,就越不容易出错; 在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一种良好的品德 简单的代码,只会用到最基本的语法,复杂的高级特性,会有.

183

Python 炫技操作:合并字典的七种方法

来源 |Python编程时光(ID: Cool-Python)Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那...

AI科技大本营 3万+

你的代码是如何被炫技毁掉的

来源:未闻Code你的代码是如何被炫技毁掉的?假设有这样一个例子:一个函数接收两个参数,第一个参数为一个字典,第二个参数为一个列表,我们要把列表中的每一个元素去查字典,如果能够查询到,那么...

Python数据之道 168

Python 炫技操作(02):合并字典的七种方法

首发于微信公众号:Python编程时光 Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。 但你要知道,在团队合作里,炫技是大忌。 为什么这么说呢?我说下自己的看法: 越简洁的代码,越清晰的逻辑,就越不容易出错; 在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代...

王炳明 2068

Python的炫技操作:条件语句的七种写法

前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: Python极客社区 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 有的人说 Python 入门容易,但是精通难的语言,这点我非常赞同。 Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高...

ElegantHedgehog的博客 223

让人想骂街的 Python 炫技操作:条件语句的六种写法

有的人说 Python 入门容易,但是精通难的语言,这点我非常赞同。 Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。 但你要知道,在团队合作里,炫技是大忌。 为什么这么说呢?我说下自己的看法: 越简洁的代码,越清晰的逻辑,就越不容易出错; 在团队合作中,你的代码不只有你在...

python入门学习进阶教程 228
上一篇: 利用Python编程,批量发送电子邮件(含附件)
下一篇: 学会这招Python爬虫技巧,小姐姐看你的眼神将不一样
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值