在 Python 个文件中动态传入值

Dynamically pass in values in Python files

我有两个 Python 文件。一个文件正在处理 AWS CDK 并创建 DynamoDB table 资源。第二个文件正在执行一个函数,它将项目放入 table 并且在 CDK 包之外。目前,我在 put item 方法中硬编码了 table 名称。我想说明从 CDK 中读入 table 名称的位置。 Python 新手,如有任何建议,我们将不胜感激。以下是我目前准备的代码:

第一个Python文件

from aws_cdk import (
core as cdk,
aws_dynamodb as dynamodb
)
from aws_cdk import core


class CdkStack(cdk.Stack):

    def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        currentDate= date.today()
        table_name= 'DynamoTableToPassInOtherFile'
        dynamodbTable= dynamodb.Table(self,id='dynamodbTable',table_name=table_name,partition_key=dynamodb.Attribute(name='id',type=dynamodb.AttributeType.STRING))

第二个Python文件

def write_to_dynamo_db(self, json):
    dynamodb_response = dynamodb_client.put_item(
                TableName= "DynamoTableToReadFromOtherFile",
                Item={
                    'id':{'S': self.id},
                    'formatted_date': {'S': json},
                    },
                ReturnValues='ALL_OLD',
                ReturnConsumedCapacity='INDEXES',
            )
    return dynamodb_response
# you can import CdkStack from file1 into file 2 like this
from file1 import CdkStack

def write_to_dynamo_db(self, cdkStack, json):
    dynamodb_response = dynamodb_client.put_item(
                TableName= cdkStack.table_name,
                Item={
                    'id':{'S': self.id},
                    'formatted_date': {'S': json},
                    },
                ReturnValues='ALL_OLD',
                ReturnConsumedCapacity='INDEXES',
            )
    return dynamodb_response


# then create an instance of CdkStack (if not already created, otherwise you can import the instance) and pass it to your method (or just pass the table_name attribute from that instance).
cdkStack = CdkStack()
something.write_to_dynamo_db(cdkStack=cdkStack, json=json)

不确定 file2 中的其余代码是什么样的,但这是您可以使用的一般模式。

更多信息:

Python Modules