在python中将类实例作为参数传递给方法

在python中将类实例作为参数传递给方法,python,Python,我只是匆忙地做了这件事,我没有使用编译器,所以可能会有错误,但我的问题是Python是否允许您向函数发送类实例?一旦我们有了类实例,我可以在该实例中设置变量吗 我可以用C来做这件事,我已经用C编程很长时间了。我只是不知道这在Python中是如何工作的,在我读过的任何一本书中我都找不到任何东西。当然,我稍微重写了您的代码,以便您可以运行它: class Person: age = None gender = None weight = None def ___in

我只是匆忙地做了这件事,我没有使用编译器,所以可能会有错误,但我的问题是Python是否允许您向函数发送类实例?一旦我们有了类实例,我可以在该实例中设置变量吗


我可以用C来做这件事,我已经用C编程很长时间了。我只是不知道这在Python中是如何工作的,在我读过的任何一本书中我都找不到任何东西。

当然,我稍微重写了您的代码,以便您可以运行它:

class Person:
    age = None
    gender = None
    weight = None

    def ___init__(self, age, gender):
        self.age = age
        self.gender= gender

class RunMain:
    person = Person()
    collect = CollectData()

    collect.getAge(person)
    collect.getGender(person)

    print person.age
    print person.gender

class CollectData():
    def getAge(self, person):
        person.age = 22
    def getGender(self, person):
        person.gender = 'Male'
您可以在此处运行它:

我想我们正在询问传入的类实例是否发生了变异。是的,它就像c。你为什么会有其他的期待


奇怪的习惯用法是,使用getAge和getGender来改变这些值。

我的问题是Python是否允许您向函数发送类实例-当然,您可以这样做,类实例是第一类对象。顺便说一下,类和函数也是如此。谢谢,罗伯特。我试图找到一种方法来编辑我的帖子。注意getAge和getGender是不好的名字,原因有两个:1。Python使用带下划线的小写字母_作为方法;二,。他们设置属性。当然可以。你为什么不试试呢?@MarkusMeskanen你是对的,如果说推荐那种风格会更准确。谢谢你,罗伯特。这是我的问题之一,我通过试错法解决了这个问题。我认为它不起作用,因为当我打印值时,我一直没有得到任何值。我在这里写的代码只是一个示例,它不是运行的代码。我只是把它作为一个例子来学习。我没有运行这个代码。我只是想了解如何处理类实例的理论。谢谢你的帮助。我很感谢你花时间给出这个例子,我当然也很感谢这个链接,因为我将使用它进行测试。
class Person:
    age = None
    gender = None
    weight = None

    def ___init__(self, age, gender):
        self.age = age
        self.gender= gender



class CollectData():
    def getAge(self, person):
        person.age = 22
    def getGender(self, person):
        person.gender = 'Male'



class RunMain:
    person = Person()
    collect = CollectData()

    collect.getAge(person)
    collect.getGender(person)

    print person.age
    print person.gender


RunMain()