DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

Function in Python (2)

Buy Me a Coffee

*Memo:

One or more pass statements, return statements or values can be set to do nothing in a function, returning None as shown below:

*Memo:

  • Basically, a pass statement is used for the function to do nothing.
  • The function with no code gets error.
def func():
    pass
    pass
    return
    return
    100
    200
    "Hello"
    "World"

print(func())
# None
Enter fullscreen mode Exit fullscreen mode
def func(): # SyntaxError: incomplete input
    # No code
Enter fullscreen mode Exit fullscreen mode

A variable, function and class can be assigned to parameters as shown below:

myvar = 'myvar'

def myfn():
    return 'myfn'

class mycls:
    v = 'mycls'

def func1(v, f, c):
    print(v, f(), c.v)

def func2(v=myvar, f=myfn, c=mycls):
    print(v, f(), c.v)

func1(myvar, myfn, mycls)
func1(v=myvar, f=myfn, c=mycls)
func2()
# myvar myfn mycls
Enter fullscreen mode Exit fullscreen mode

A variable, function and class can be defined in a function as shown below:

def func():
    myvar = 'myvar'

    def myfn():
        return 'myfn'

    class mycls:
        v = 'mycls'

    print(myvar, myfn(), mycls.v)

func()
# myvar myfn mycls
Enter fullscreen mode Exit fullscreen mode

<1D function>:

def func(num):
    return num*2

print(func(3))
# 6
Enter fullscreen mode Exit fullscreen mode

<2D function>:

def func(num):
    def func(num):
        return num*2
    return func(num)*2

print(func(3))
# 12
Enter fullscreen mode Exit fullscreen mode

<3D function>:

def func(num):
    def func(num):
        def func(num):
            return num*2
        return func(num)*2
    return func(num)*2

print(func(3))
# 24
Enter fullscreen mode Exit fullscreen mode

A function can be written in one line with ; as shown below:

*Memo:

  • ; is optional for the end of code.
def func(): v1 = 3; v2 = 5; return v1 + v2
# def func(): v1 = 3; v2 = 5; return v1 + v2;

print(func())
# 8
Enter fullscreen mode Exit fullscreen mode
def func(): v1 = 3 v2 = 5 return v1 + v2
def func(): v1 = 3; v2 = 5 return v1 + v2
def func(): v1 = 3 v2 = 5; return v1 + v2
def func(): v1 = 3 v2 = 5 return v1 + v2;
# Error
Enter fullscreen mode Exit fullscreen mode

A function can be indirectly assigned to a variable and parameter but cannot be directly assigned to a variable like JavaScript except a lambda as shown below:

def myfn():
    print('myfn')

v = myfn

v()
# myfn

def func1(f):
    f()

func1(myfn)
# myfn

def func2(f=myfn):
    f()

func2()
# myfn
Enter fullscreen mode Exit fullscreen mode
v = def myfn(): print('myfn')
# SyntaxError: invalid syntax

v = myfn(): print('myfn')
# SyntaxError: invalid syntax
Enter fullscreen mode Exit fullscreen mode
def func(f):
    f()

func(def myfn(): print('myfn'))
func(myfn(): print('myfn'))
# SyntaxError: invalid syntax
Enter fullscreen mode Exit fullscreen mode
def func(f=def myfn(): print('myfn')):
    f()
# SyntaxError: invalid syntax
Enter fullscreen mode Exit fullscreen mode
mylam = lambda: print('mylam')

mylam()
# mylam
Enter fullscreen mode Exit fullscreen mode
def func(f):
    f()

func(lambda: print('mylam'))
# mylam
Enter fullscreen mode Exit fullscreen mode
def func(f=lambda: print('mylam')):
    f()

func()
# mylam
Enter fullscreen mode Exit fullscreen mode

The name of a function or parameter:

  • can have letters, _ and the digits except for the 1st character.
  • can be a reserved soft keyword.
  • cannot start with a digit.
  • cannot be a reserved keyword.
def True_100(True_100): pass
def tRuE_100(tRuE_100): pass
def _True100(_True100): pass
def True100_(True100_): pass
def match(match): pass
def case(case): pass
def type(type): pass
def _(_): pass
# No error

def True-100(True-100): pass
def 100_True(100_True): pass
def True(True): pass
def class(class): pass
def def(def): pass
# Error
Enter fullscreen mode Exit fullscreen mode

A function name should be lower_snake_case as shown below:

var = 'abc'
my_var = 'abc'
my_first_var = 'abc'
Enter fullscreen mode Exit fullscreen mode
def func(param): pass
def my_func(my_param): pass
def my_first_func(my_first_param): pass
Enter fullscreen mode Exit fullscreen mode

Top comments (0)