a simple package
Project description
Undefined
Ever needed a global object that act as None
but not quite ?
Like for example key-word argument for function, where None
make sens, so you need a default value.
One solution is to create as singleton object:
mysingleton = object()
Though it becomes difficult to track the singleton across libraries, and teach users where to import this from.
It's also relatively annoying use this singleton across library.
Introducing undefined
:
>>> import undefined
>>> from undefined import Undefined
>>> undefined is Undefined
True
behavior
It work (for now) mostly like a singleton object
Though it's neither truthy not falsy
>>> if undefined: print(True)
raise NotImplementedError
Casing ?
Because it is a module you can use it lowercase:
import undefined
Because it looks more like a keyword (None
, True
, False
), you can use it upper case:
import undefined as Undefined
or
from undefined import Undefined
I tend to be torn between lowercase, for simplicity, and Uppercase.
Why not None
, difference with None
undefined
is likely slower, and as it is a regular Python object there are a few on purpose (or not difference).
Unlike None
, you can assign to it
>>> None = 3
SyntaxError: can't assign to keyword
>>> undefined = 3
>>> undefned
3
Unlike None
, undefined
is mutable
>>> undefined.value = 42
>>> undefined.value
42
(might be able to fix that with __get_attr__
Unlike None
, undefined
is neither true not false.
If you test for boolean value of undefind
if will raise.
That is to say: the following will fail:
value = undefined
if value:
pass # will raise before reaching here.
You have to check for identity:
value = undefined
other = 1
if value is undefined:
pass # will execute
for info, undefined is not True
,False
, not undefined with respect to identity
>>> undefined is True
False
>>> undefined is False
False
>>>: undefined is None
False
String form
str(undefined)
raises. repr(undefined)
is the unicode string 'Undefined'
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file undefined-0.0.8.tar.gz
.
File metadata
- Download URL: undefined-0.0.8.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.22.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6f237c0e3d7e7519694b21bd471dc25ee3c3379d9c23b74ebf02aa349c5cff7 |
|
MD5 | 04c1c41dfaa0c04692c3d592ceaeb20d |
|
BLAKE2b-256 | 78b2af4330ffa42fc9c41533b06cdc95ac780f41cf4d3cb9c71f973847d0c398 |
File details
Details for the file undefined-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: undefined-0.0.8-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.22.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e081023fd5c7d6bd83a3e2da51fce4314878b4d4cc555ade79b7fc0ef3211e9 |
|
MD5 | c6c1a585d497eb3c787fb14ae1cf92a6 |
|
BLAKE2b-256 | 8a6e105abbbc21c39e835a2734325b1737934ad02259ea372f2c6a783fca1df1 |