提问人:vpothurajula 提问时间:10/20/2023 最后编辑:vpothurajula 更新时间:10/20/2023 访问量:20
在python类中,如何将一个类的方法的返回值作为输入传递给同一类的另一个方法
In python class, how to pass returned value of a method of a class as input to another method of the same class
问:
我正在使用 boto3 库与 s3 兼容存储建立连接。我创建了一个带有构造函数的类,该构造函数将集群详细信息,访问密钥和ID作为输入,并启动了这些内容。现在创建了一个方法,用于将 S3 客户端打开到集群并返回 S3 客户端对象。想要在同一类的 diff 方法中使用它来列出存储桶:
class s3_boto3_methods():
def __init__(self,host,port,user,accesskey,session_token = None):
#self.host = host
self.port = port
self.host = host + ":" + str(self.port)
self.user_key = user
self.access_key = accesskey
session_token = None
def s3_Client_Connection(self):
s3_client = boto3.client('s3',use_ssl=False,verify=False, aws_access_key_id=self.user_key,aws_secret_access_key=self.access_key,endpoint_url=self.host)
return (s3_client)
def listBuckets(self,client):
response = client.list_buckets()['Buckets']
print ("Buckets for user:",self.user_key)
for item in response:
print (item["Name"])
if __name__ == "__main__":
instance=s3_boto3_methods("host","port","access_id","access_key")
s3_client=instance.s3_Client_Connection()
instance.listBuckets(s3_client)
在上面,该方法s3_Connect_Connection返回s3_client对象,我需要在 listBuckets 方法中使用这个。目前,我正在通过调用instance.s3_Client_Connection并将此返回的连接作为下一行中的参数传递来处理此问题。
欢迎可以改进此代码片段的建议。
另一个选项是在 listBuckets 中调用 s3_client_connection,因此每当调用列表存储桶时,它都会首先设置客户端连接:
def listBuckets(self):
s3_client=self.s3_Client_Connection()
response = s3_client.list_buckets()['Buckets'] #here response is a list with dictionaries as list items in it.
print ("Buckets for user:",self.user_key)
for item in response:
print (item["Name"])
答: 暂无答案
评论
boto3.client
s3_boto3_methods
boto3.client
boto3.client
boto3.client
boto3.client
__init__