繁体   English   中英

python class 内部方法中的 self.variable_name 与 variable_name

[英]self.variable_name vs variable_name in method inside python class

两个版本的代码都可以工作。 我试图了解 self.data_as_csv 与 data_as_csv 之间的区别。

在哪种情况下,它们中的每一个都比另一个有用。

版本 1:

import pandas as pd   
class test_class:
    def __init__(self, inputFile):
        self.file = inputFile

    def generate_csv(self):
        self.data_as_csv = pd.read_csv(self.file)
        return self.data_as_csv

x = test_class("out.csv")    
df = x.generate_csv()        
print(df)

版本 2:

import pandas as pd   
    class test_class:
        def __init__(self, inputFile):
            self.file = inputFile

        def generate_csv(self):
            data_as_csv = pd.read_csv(self.file)
            return data_as_csv

    x = test_class("out.csv")    
    df = x.generate_csv()        
    print(df)

使用 as self,您可以像这样访问变量,因此如果您需要访问 class 中的数据,在这种情况下会很有用:

x.data_as_csv

Out[1456]: 
Empty DataFrame
Columns: [P234, Dog, Billy, No, No.1, D32432432, Lost, 01/09/2018, 28/08/2019, return to owner, 123 Fake Drive, LS34 1LE]
Index: []

使用self. 将允许您从 class 的任何方法访问此变量,这意味着您可以让您的“全局”变量仅在当前 class 中可用,并且仅适用于当前实例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM