溪客(编程代码) 溪客(编程代码)

  • 今天是2025年08月20日 Wednesday
  • 首页
  • 知识
  • 网址
  • AI助手

Python

首页 / 知识 / Python
  • 基础
    • Conda
    • Jupyter
    • dump
    • CSharp2Python
    • 关于模块导入
    • 关于推导式
    • 关于元组
    • set和数组的区别
    • 关于Literal
    • 关于iter
    • 关于setup.py
    • 路径拼接
    • 方法命名约定
  • 库
    • 其他
    • argparse命令行参数解析
    • asyncio自带异步编程库
    • aiofiles异步文件读写库
    • beautifulsoup4_HTML_XML解析库
    • colorama_在终端输出漂亮的字
    • datasets数据集处理
    • html2text
    • httpx_HTTP请求库
    • litellm
    • loguru日志库
    • numpy科学计算基础库
    • pillow图像处理
    • pydantic数据验证
    • pyyaml
    • requests_HTTP请求库
    • tenacity重试
    • tiktoken计算Token量
    • torch机器学习_深度学习框架
    • tomli TOML文件解析库
    • tomllib 自带TOML文件解析库
    • unidiff_文本_文件差异对比
    • uvicorn_Web服务器
  • langchain
    • langchain-chatchat
    • langchain-qianfan
下面Csharp中没有的、相同的语法 --- 变量:Pyton不需要定义变量,跟js类似 --- 三元表达式(不是三元运算符) ```python value_if_true if 条件 else value_if_false ``` 如果 “条件” 为真(True),则整个表达式的值为 value_if_true;否则,值为 value_if_false。 示例 ``` prompt = args.prompt if args.prompt else input("Enter your prompt: ") ``` --- # 字符串 ``` python if not prompt.strip(): logger.warning("Empty prompt provided.") return ``` strip 相当于Trim, if没有括号,有一个逗号。有一个not,类似sql的not null 字符串格式化 跟c#的 $"" 类似 如下示例 ``` logger.warning( f"🤔 Hmm, {self.name} tried to use tools when they weren't available!" ) ``` --- # 方法 ``` def add_tools(self, *tools: BaseTool): ``` 跟c#的params类似 ``` public add_tools(params BaseTool tools) ``` --- ``` @classmethod async def create(cls, **kwargs) -> "Manus": """Factory method to create and properly initialize a Manus instance.""" instance = cls(**kwargs) await instance.initialize_mcp_servers() instance._initialized = True return instance ``` 1、cls 是一个约定俗成的参数名,在类方法里代表当前的类本身(类似于 self,但 self 是实例,cls 是类)。 2、**kwargs 表示这个方法可以接收任意数量的关键字参数(比如 name="Alice", age=20),这些参数会被打包成一个字典。 3、-> "Manus" 是一个类型注解,表示这个函数返回的是一个 Manus 类的实例。(这只是提示,Python 不会强制检查) 上面的相当于是c#的静态方法,用于构造对象 ``` for server_id, server_config in config.mcp_config.servers.items(): ``` for in 循环 + 解构 语法理解: ``` browser_in_use = any( tc.function.name == BrowserUseTool().name for msg in recent_messages if msg.tool_calls for tc in msg.tool_calls ) ``` 或者 ``` new_tools = [ tool for tool in self.mcp_clients.tools if tool.server_id == server_id ] ``` 又或者 ``` prompt = args.prompt if args.prompt else input("Enter your prompt: ") ``` 有点倒置的感觉,第一个参数是最终的结果 例如 args.prompt if args.prompt else input("Enter your prompt: ") c#的写法应该是 if args.prompt args.prompt else input("Enter your prompt: ") 其实这是推导式,有点像是析构的写法,就是从一个列表或者对象中,析构出参数出来 细看“关于推导式”
© 2022 - 溪客(编程代码) - 粤ICP备10217501号 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)