Python类属性、方法和参数

Python类属性、方法和参数,python,class,oop,Python,Class,Oop,我开始学习python类,并试图了解OOP中的属性、方法和参数的概念 我正在使用3个示例: 例1 与: 打印时间是5:30 例2 与: clock = Clock('5:30') clock.print_time('10:30') 打印时间是10:30 例3 最后,关于: boston_clock = Clock('5:30') paris_clock = boston_clock paris_clock.time = '10:30' boston_clock.print_time() 打印

我开始学习python类,并试图了解OOP中的属性、方法和参数的概念

我正在使用3个示例:

例1

与:

打印时间是5:30

例2

与:

clock = Clock('5:30')
clock.print_time('10:30')
打印时间是10:30

例3

最后,关于:

boston_clock = Clock('5:30')
paris_clock = boston_clock
paris_clock.time = '10:30'
boston_clock.print_time()
打印时间是10:30


有人能解释一下在这些示例中属性、方法和参数是如何绑定到对象的吗?

属性是类或实例中的变量。在这种情况下,变量hello是Hi类的一个属性

方法是类中的函数,因此对于类似的情况,函数greet是类Hi的一个方法

参数是进入方法的输入。所以弦,你好,世界!是类Hi中的方法say的参数

在软件工程StackExchange网站上有一个关于OOPL的好问题

此链接可以解释有关类属性/方法/参数的更多信息

不过,我确实理解这些概念有多么复杂,因此我将回答您的问题,尽管在将来,尝试提出更具体的问题

在示例一中:

初始化器和打印时间都是类属性。初始化时钟变量并传入参数“5:30”时,它访问init函数并点击代码的self.time=时间行。由于时间是使用点表示法访问的,因此时间是特定于单个对象的实例属性

调用self.print_time时,函数调用特定于局部变量的时间,因此不会更改实例属性。这就是为什么当你打印self.time时仍然是5:30

在示例2中:

在这种情况下,init和print_time函数都是类似于上述示例的类属性。时钟对象的初始化与上面相同。但是,当它调用print_time时,time是参数“10:30”的一个变量,因此当我们只打印time notice时,我们没有使用任何点符号,它只打印局部变量“10:30”

例三:


init和print_time都是类属性,与上面两个示例相同。初始化boston_clock对象时,它与示例1和示例2类似。然后将名称paris_clock指定给对象boston_block注意,paris_clock和boston_clock只是指向同一对象的名称,就像我可以有两个名称一样。因此,当我们执行paris_clock.time='10:30'代码行时,该单个对象的实例属性将更改为'10:30'。但是,由于波士顿时钟指向的对象与巴黎时钟指向的对象相同,因此波士顿时钟的时间属性也是“10:30”。

我投票将此问题作为离题结束,因为这不是辅导服务。您的问题相当模糊。属性、方法和参数是非常通用的概念。我认为你需要缩小你需要了解的范围。现在还不清楚您是否知道什么是属性、方法和参数。我认为blah是一个参数,在某行代码中被绑定到一个对象,这是正确的吗?这样人们就可以看到你对这些概念的现有理解。是的。正如@BrenBarn已经说过的,到目前为止,您的问题非常广泛。Python的OOP概念有什么让你困惑的地方吗?实例变量?属性查找?方法调用?对象创建?试着先读一下加州大学伯克利分校关于类的cs类入门教材:然后你可能会有更具体的问题要问。如果以前没有人问过,你不需要将问题标记为重复。但是,它可能由于其他原因需要关闭,即太宽。请有人解释一下,在这些示例中,属性、方法和参数是如何绑定到对象的我真的不认为你能回答那个问题。在我看来更像是你在拐弯抹角。无意冒犯。@leaf说得通,我只是想解释一下每一个都是如何与标准编程相关的。这篇文章结尾的问题也许能更好地解释这些概念。是的,我知道你是从哪里来的。然而,OP似乎完全混淆了,并且可以从一个好的解释中获益。唉,我找不到一个合适的答案来回答他的问题。也许我会发布我自己的。@leaf-OP的问题太广泛了,需要一些关于OOP的教程。
class Clock(object):
    def __init__(self, time):
    self.time = time
    def print_time(self, time):
    print time
clock = Clock('5:30')
clock.print_time('10:30')
  class Clock(object):
        def __init__(self, time):
        self.time = time
        def print_time(self):
        print self.time
boston_clock = Clock('5:30')
paris_clock = boston_clock
paris_clock.time = '10:30'
boston_clock.print_time()
class Hi:
  hello = "Hello World!"
class Hi:
  def greet(self):
    pass
class Hi:
  def say(self, saying):
    print(saying)

Hi().say("Hello World!")