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