在Python中将对象属性传递给函数的最佳方法是什么?

use*_*599 2 python oop

我确信即使它有效,我也会"错误地"这样做.现在,当我调用一个函数时,我只是传递了整个对象,即

class my_file_obj:
    def __init__(self,filename):
        self.filename = filename
        self.owner = None
        self.file_type = None
        self.fileflag = 0
        self.md5 = None
Run Code Online (Sandbox Code Playgroud)

函数调用,其中file_obj1是一个实例my_file_obj:

some_function(file_obj1)
Run Code Online (Sandbox Code Playgroud)

然后根据需要在函数中引用我需要的属性.

什么是"python"/正确的做法?

  • some_function(file_obj1)

  • some_function(file_obj1.filename)

  • the_filename = file_obj1.filename
    some_function(the_filename)

Cat*_*lus 5

嗯,这很明显.这取决于是some_function需要整个对象还是仅需要文件名,在这种情况下,您需要传递整个my_file_obj实例或仅传递文件名.