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
简洁