Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中面向对象编程的基本问题_Python - Fatal编程技术网

Python中面向对象编程的基本问题

Python中面向对象编程的基本问题,python,Python,我很难掌握一个类的方法中的变量,我正在寻找这些变量如何工作的解释,以帮助我更好地理解它 例如: 内部时间类 def __init__(self, hour,minute, second) self.hour = hour self.minute = minute self.second = second def print_time(self): print '%.2d:%.2d:%.2d' % (self.hour, self.minute, self.sec

我很难掌握一个类的方法中的变量,我正在寻找这些变量如何工作的解释,以帮助我更好地理解它

例如:

内部时间类

def __init__(self, hour,minute, second)
    self.hour = hour
    self.minute = minute
    self.second = second

def print_time(self):
    print '%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second)

time = Time(h,m,s)
time.print_time()
“self”变量的变化发生在哪里?为什么这个方法不被称为:方法(var1(subject),var2,var3,var4)?而不是subject.method(var2,var3,var4)?(我知道我对这一点的理解是不可靠的,如果我的任何条款不正确,我很高兴收到更正)

  • 魔法。确切地说,是Python特有的魔法;其他语言可能(而且经常)会选择不同的方式

  • 可能是。在Python中,
    Class.method(obj)
    obj.method()
    Class
    的实例时相同<代码>\uuuu init\uuuu()是一种特殊情况

  • 魔法。确切地说,是Python特有的魔法;其他语言可能(而且经常)会选择不同的方式

  • 可能是。在Python中,
    Class.method(obj)
    obj.method()
    Class
    的实例时相同<代码>\uuuu init\uuuu()是一种特殊情况


  • 你从哪里得到这个密码的?这没有道理


    您应该查看“”的代码示例,它与您发布的代码示例类似,只是它是正确的,并且它解释了变量范围。查看上述URL的第15.6节。

    您从哪里获得此wierd代码?这没有道理


    您应该查看“”的代码示例,它与您发布的代码示例类似,只是它是正确的,并且它解释了变量范围。请看上面URL的第15.6节。

    它是从那里复制和粘贴的,我只是更改了init中的变量。唯一的问题是,我没有包括print_time()方法。你不能像那样更改变量。基本上,来自web的代码获取三个值,它们是init函数的参数,并将它们复制到对象实例的三个属性中。这取决于等号右侧使用的参数名称。左边的名字可以是任何东西。它是从那里复制和粘贴的,我只是更改了init中的变量。唯一的问题是,我没有包括print_time()方法。你不能像那样更改变量。基本上,来自web的代码获取三个值,它们是init函数的参数,并将它们复制到对象实例的三个属性中。这取决于等号右侧使用的参数名称。左边的名字可以是任何东西。这个代码是错误的。例如,
    self.x=hour
    -在可用范围内没有
    hour
    。什么是打印时间?类定义在哪里?好的--我更新了代码。这个例子取自《如何像计算机科学家一样思考》(下面的链接)。这个代码是错误的。例如,
    self.x=hour
    -在可用范围内没有
    hour
    。什么是打印时间?类定义在哪里?好的--我更新了代码。这个例子取自《如何像计算机科学家一样思考》(下面的链接)。我会说“魔法”发生在其他语言中,像“This”这样的词神奇地指代了当前实例(有时“This”甚至神奇地添加到合适的字段中)。我会说“魔法”发生在其他语言中,像“This”这样的词神奇地引用当前实例(有时“this”甚至神奇地添加到适合它的字段中)。