Here is a conventional-ish way, if you want to pass the code verbatim to the function:
#import "@preview/codly:1.2.0": *
#import "@preview/codly-languages:0.1.8": *
#let code(body, sz: 19pt) = {
show: codly-init
codly(stroke: 1pt + black, languages: codly-languages)
show raw: set par(leading: 0.65em)
show raw: set text(size: sz)
body
}
#code(```py
a = 5
b = "a"
print(a, b)
```)
Or if you really want to set the language as a separate argument:
#import "@preview/codly:1.2.0": *
#import "@preview/codly-languages:0.1.8": *
#let code(body, sz: 19pt, ..args) = {
show: codly-init
codly(stroke: 1pt + black, languages: codly-languages)
show raw: set par(leading: 0.65em)
show raw: set text(size: sz)
raw(body.text, block: true, ..args)
}
#code(lang: "py", ```
a = 5
b = "a"
print(a, b)
```)