All the other answers here require third party libraries; this one doesn't require anything. It just uses an apple script to create the notification:
import os
def notify(title, text):
os.system("""
osascript -e 'display notification "{}" with title "{}"'
""".format(text, title))
notify("Title", "Heres an alert")
Note that this example does not escape quotes, double quotes, or other special characters, so these characters will not work correctly in the text or title of the notification.
Update: This should work with any strings, no need to escape anything. It works by passing the raw strings as args to the apple script instead of trying to embed them in the text of the apple script program.
import subprocess
CMD = '''
on run argv
display notification (item 2 of argv) with title (item 1 of argv)
end run
'''
def notify(title, text):
subprocess.call(['osascript', '-e', CMD, title, text])
# Example uses:
notify("Title", "Heres an alert")
notify(r'Weird/|"!@#$%^&*()
title', r'!@#$%^&*()"')
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…