is @ operator popular now?
Peter Otten
__peter__ at web.de
Sat Jul 15 10:03:06 EDT 2017
Chris Angelico wrote:
> On Sat, Jul 15, 2017 at 11:05 PM, Peter Otten <__peter__ at web.de> wrote:
>> Matt Wheeler wrote:
>>
>>>> as the title says. has @ been used in projects?
>>
>> numpy, probably?
>>
>>> Strictly speaking, @ is not an operator.
>>
>> In other words it's not popular, not even widely known.
>>
>> Compare:
>>
>> $ python3.4 -c '__peter__ at web.de'
>> File "<string>", line 1
>> __peter__ at web.de
>> ^
>> SyntaxError: invalid syntax
>> $ python3.5 -c '__peter__ at web.de'
>> Traceback (most recent call last):
>> File "<string>", line 1, in <module>
>> NameError: name '__peter__' is not defined
>>
>> Starting with 3.5 my email address is valid Python syntax. Now I'm
>> waiting for the __peter__ builtin ;)
>
> And you'll have to 'import web' too.
>
> I've no idea what 'web.de' would be and what happens when you matmul it by
> you.
>
> ChrisA
This is getting more complex than expected. Here's a prototype:
import builtins
def __peter__():
class Provider:
def __init__(self, name):
self.name = name
def __getattr__(self, name):
return Provider(f"{self.name}.{name}")
def __rmatmul__(self, user):
assert user.email.endswith("@" + self.name)
return user
class User:
def __init__(self, email):
self.email = email
user, at, site = email.partition("@")
name = site.partition(".")[0]
setattr(builtins, name, Provider(name))
def __repr__(self):
return self.email
return User("__peter__ at web.de")
builtins.__peter__ = __peter__()
del __peter__
$ python3.7 -i web.py
>>> __peter__ at web.de
__peter__ at web.de
I'm sure you won't question the feature's usefulness after this. Future
versions may send me an email or wipe your hard disk at my discretion...
More information about the Python-list
mailing list