Python模糊类语法

Python模糊类语法,python,Python,我在python模块中有这样一个类定义(util/systemlinux.py) 和客户端驱动程序代码(ClientSetup.py) 以上是一个很好的工作代码。 我的问题是,我认为成员变量\u ip是作为SysUtil类的一个实例创建的,但我不明白为什么要将其作为参数传递给SysUtil.validateIP()函数?除此之外,validateIP()只接受其中的两个参数,self是隐式传递的第一个参数。但这里的代码甚至没有抱怨任何错误。允许使用这种语法吗?关于成员变量\u ip是SysUti

我在python模块中有这样一个类定义(util/systemlinux.py)

和客户端驱动程序代码(ClientSetup.py)

以上是一个很好的工作代码。
我的问题是,我认为成员变量\u ip是作为SysUtil类的一个实例创建的,但我不明白为什么要将其作为参数传递给SysUtil.validateIP()函数?除此之外,validateIP()只接受其中的两个参数,self是隐式传递的第一个参数。但这里的代码甚至没有抱怨任何错误。允许使用这种语法吗?

关于成员变量
\u ip
SysUtil
类的实例,您是对的。但是,
SysUtil.validateIP
没有任何隐式传递的参数,因为SysUtil是类的名称,而不是实例。
SysUtil.validateIP(self.\u-ip,'127.0.0.1')
可以重写为
self.\u-ip.validateIP('127.0.0.1')
。这里的编写方式只是简单地说,“我想调用
validateIP
方法,我想明确地告诉您,您应该调用在
SysUtil
类中实现的版本。”

这个
SysUtil.validateIP(self._ip,'127.0.1')
对于良好的Python OOP实践和设计来说是不正确的方法
class SysUtil():
  def __init__(self):
    pass

  def validateIP(self, ip):
    result = True
    try:
      if len(ip.split('.')) == 4:
         socket.inet_aton(ip)
      else:
         result = False
    except socket.error:
      result = False
    return result
from util.systemlinux import SysUtil
class ClientSetup():
  def __init__(self):
    self._ip = SysUtil() # what is this doing?

  def checkIP(self):
    ret = SysUtil.validateIP(self._ip, '127.0.0.1')