【问题标题】:Calling Method on Method and beautify output( Chaining Methods)在方法上调用方法并美化输出(链接方法)
【发布时间】:2021-07-16 06:59:01
【问题描述】:

例如,我有一个类 Information,其方法适用于某些数据帧并返回数据帧。

class Information:

    def __init__(self, ID: str):
        self.ID = ID

    def name(self):
        pd.read_csv(....)
        do something..
        return dataframe
        
    
    def age(self):
        do something.. 
        return datframe

    def pretty_string(self):
        do something.. 
        return string

打电话给我

学生 1 = 信息 (101)
学生1.姓名

返回相同

     ID Name
0   101 Thor

学生 1 = 信息 (101)

如何在方法输出上仅获取调用另一个方法的名称..
类似的东西

student1.name.pretty_string

Thor

student1.age.pretty_string

1069

不是作为回报的数据框。

【问题讨论】:

    标签: python class method-chaining


    【解决方案1】:

    您只需要访问数据框列,它自己的行。例如我建议的name 属性:

        @property
        def name(self):
            df = pd.read_csv(....)
            return df["Name"][0]
    

    @propery 装饰器将帮助调用方法name 作为对象本身的属性。因此,无论何时:

    student1 = Informations(101)
    student1.name
    

    您将在控制台中看到:

    Thor
    

    【讨论】:

    • 这个方法我一直在用。但是,我有时需要 df 作为返回值,有时需要作为字符串。目前,我正在使用两种具有不同返回类型(字符串和 df)的方法,为所有人制作相同方法的两个副本。因此正在考虑另一种方法,该方法可以在调用 main 方法时将其转换为字符串返回。所以不需要复制同一个方法的两份..
    【解决方案2】:

    如果你使用padas

    for example:
    df.at[0, 'Name']
    

    文档: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.at.html#pandas.DataFrame.at

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      相关资源
      最近更新 更多