跳转到主要内容

OBSCENE字符串生成一行代码

项目描述

mapjoin函数的目的是提供一个类似于os.path.join(它接受*args)的str.join的替代方案。

mapjoin()

from mapjoin import mapjoin, strjoin

mapjoin('foo', 2)                      # raise TypeError
mapjoin('foo', 2, sep='_', key=str)    # return 'foo_2'

# you can also make mapjoin use your own callback with the key kwarg:
your_formatter = lambda key: str(key) if key else 'Nothin!'
mapjoin('foo', obj, 2, None, sep='\n', key=your_formatter)

strjoin()

strjoin('foo', 2)                      # 'foo-2'
strjoin('foo', 2, sep='_')             # 'foo_2'

但为什么?

最初,因为我连续写os.path.join调用和str.join调用时犯了很多错误

>>> os.path.join('a', 'b')
'a/b'

# and 2 seconds later i'm doing this:

>>> ' '.join('a', 'b')
TypeError: join() takes exactly one argument (2 given)

# and instead of "just fixit and move on", i decided try to make a joint

但也因为我不能从我的代码中获得任何满足感

readable = ' '.join(map(str, [
    'hello',
    f'__{name}__',
    something,
]))

# or:

def foo():
    readable = textwrap.dedent(f'''
    hello
    __{name}__
    ''').strip()

参与故事

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

mapjoin-0.2.0.tar.gz (1.7 kB 查看哈希值)

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面