Este pequeno perl one-liner tentará restringir a substituição ao método __init__
perl -pe '
if (/^\s* def \s+ __init__/x) {
$start = 1;
}
elsif ($start) {
s{ (\w+) (?=\s+=) }{self.$1}x;
/^\s* (class | def) \b/x and $start = 0;
}
' file.py
Ou a mesma lógica no awk
awk '
$1 == "def" && $2 ~ /^__init__/ {start = 1; print; next}
start && /^[[:blank:]]+[[:alnum:]_]+)[[:blank:]]*=/ {
$0 = gensub(/[[:alnum:]_]+/, "self.\0", 1)
}
{print}
$1 == "def" || $1 == "class" {start = 0}
' file.py