Go源码

package GoTools

import (
	"fmt"
)

// 定义结构体存储密码
type Config struct {
	password string
}

func InitConfig(password string) *Config {
	c := new(Config)
	c.password = password
	c.Install()
	return c
}

// 安装软件
// 绑定结构体 (p *Config)到p实例(p = Config())
func (p *Config) Install() bool {
	// 通过p.password调取结构数据(self.password)
	cmd := fmt.Sprintf("echo %s | sudo -S apt install vsftpd -y", p.password)
	fmt.Println(cmd)
	return true
}

Python3源码

# 定义一个类
class Application:
    # 初始化内部接口(结构体)
    def __init__(self, password):
        self.password = password
        self.install()
    # 通过self绑定install方法到Application实例
    def install(self):
        cmd = f"echo '{self.password}' | sudo -S apt install python3"
        return True

# 实例化
demo = Application(password='123')
# 调用实例功能
demo.install()

对照

GoLang Python3
InitConfig(password string) def init(self, password):
self.password = password c.password = password
demo.install() c.Install()
self.install() c.Install()
(p *Config) (self)

总结

Golang中虽然取消了的结构,但是使用结构体一样能到达的基本效果,总的来说还是语法繁琐了点,不如Python简洁