Skip to main content

Assign variables wherever, whenever you want

Project description


Assign variables wherever, whenever you want.


let3 is a strict fork of Taylor Marks’s let package with a fix allowing to work with Python3 or higher and with a little code reformatting and minor improvements.

Overview below is a copy from the original let website (with only the necessary changes regarding let3).

Quick Start

Once you’ve installed, you can really quickly verified that it works with just this:

>>> from let import let
>>> if let(count = len('Hello World!')):
...     print(count)


In C, Java, and many other languages, it’s possible to assign variables inside of if or while condition statements. This is useful in allowing you to concisely both assign the value, and check whether a condition is met.

This ability doesn’t exist in Python, because of the thought that when people write something like:

if row = db.fetch_results():

They may have actually meant:

if row == db.fetch_results():

Personally, I have never made this mistake. It seems far more like a theoretical mistake that could plausibly happen than one that actually happens and warrants removing features, as was chosen in Python.

Anyways, the let function in this module gives you something very close to that ability in other languages. A few examples:

if let(name = longInstanceName.longAttributeName):

# Yes, db.fetch_results() should just return a generator. No, it doesn't.
while let(results = db.fetch_results()):

if let(count = len(nameValuePair)) != 1:
    raise Exception('Bad amount: {}'.format(count))


To install run:

python -m pip install --upgrade let3


Visit development page

Installation from sources:

Clone the sources and run:

python -m pip install ./let3

or on development mode:

python -m pip install --editable ./let3


  • Development is strictly based on tox. To install it run:

    python -m pip install tox


Copyright (c) 2016 Taylor Marks
Copyright (c) 2016-2019 Adam Karpierz

Licensed under the MIT License
Please refer to the accompanying LICENSE file.



1.0.11 (2019-05-22)

  • Drop support for Python 2.

1.0.10 (2019-05-21)

  • Update required setuptools version.
  • Setup update and improvements.
  • This is the latest release that supports Python 2.

1.0.9 (2018-11-08)

  • Drop support for Python 2.6 and 3.0-3.3
  • Update required setuptools version.

1.0.8 (2018-05-08)

  • Update required setuptools version.
  • Improve and simplify setup and packaging.

1.0.7 (2018-02-26)

  • Improve and simplify setup and packaging.

1.0.6 (2018-01-28)

  • Fix a bug and inconsistencies in tox.ini
  • Update of README.rst.

1.0.3 (2018-01-24)

  • Update required Sphinx version.
  • Update doc Sphinx configuration files.

1.0.2 (2017-11-18)

  • Setup improvements.
  • Other minor improvements.

1.0.1 (2017-01-05)

  • Creating a fork of Taylor Marks’s let package with a fix allowing to work with Python3 or higher.
  • Minor improvements.

Changes of the original let:

1.0.1 (Feb 25, 2016)

  • Let now assigns the variables to the global namespace always - never the local namespace. The Python interpreter sometimes optimizes variables within the local namespace - it’s best not to change values behind its back, as it leads to very difficult to discover bugs.

1.0.0 (Feb. 7, 2016)

  • Initial commit

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for let3, version 1.0.11
Filename, size File type Python version Upload date Hashes
Filename, size (16.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page