Python对象,并将列表转换为属性。通过参数传递对象时,列表为空

Python对象,并将列表转换为属性。通过参数传递对象时,列表为空,python,list,parameters,encapsulation,Python,List,Parameters,Encapsulation,我的类gcb_ip具有以下属性: class gcb_ip: ip = None country_code = None score = None asn = None records = list() 1我用特定的方法填写记录列表 2如果我检查对象的主代码,我可以看到该对象中的记录和其他属性 3如果我将对象签入另一个通过参数传递的类方法中,我看不到记录,但可以看到对象中的其他属性 我来自C++,我猜这是一个拷贝/引用参数传递问题。发生了什么事?您是否正

我的类gcb_ip具有以下属性:

class gcb_ip:
    ip = None
    country_code = None
    score = None
    asn = None
    records = list()
1我用特定的方法填写记录列表

2如果我检查对象的主代码,我可以看到该对象中的记录和其他属性

3如果我将对象签入另一个通过参数传递的类方法中,我看不到记录,但可以看到对象中的其他属性

<>我来自C++,我猜这是一个拷贝/引用参数传递问题。发生了什么事?

您是否正确定义了init函数,并设置了这些参数?比如说

class gcb_ip(object):
    def __init__(self, IP, country_code, score, asn):
        self.IP = IP
        self.country_code = country_code
        self.score = score
        self.asn = asn
        self.records = list()
myIP = someGcbObject.IP

这等同于在C++中设置显式构造函数,并初始化成员变量。

然后,您可以像预期的那样引用该对象的参数,例如

class gcb_ip(object):
    def __init__(self, IP, country_code, score, asn):
        self.IP = IP
        self.country_code = country_code
        self.score = score
        self.asn = asn
        self.records = list()
myIP = someGcbObject.IP

你能写一个非工作代码的例子吗?你所说的参数传递是什么意思?还有,是的,我已经定义了构造函数,这个类100%正确。只是当我通过参数将一个类实例传递给另一个类方法时,“records”列表看起来是空的,但在方法之外不是空的。