Python字符串神奇用法


1. 将一个字符串中的前两个’_’替换为’:’

s = "a_b_c_d_e"
s_replaced = s.replace("_", ":", 2)  # 指定最大替换次数为2
print(s_replaced)

2. argparse命令行参数中的-会自动转换为_

# 在使用Python的argparse库时,如果你定义了一个带有连字符(-)的命令行参数,argparse模块会自动将这些连字符转换为下划线(_)。这样做是因为在Python中,变量名不能包含连字符;它们可以包含下划线。

3. python的@staticmethod经常用在什么情况下?

  • staticmethod用于修饰类中的方法,使其可以在不创建类实例的情况下调用方法
  • 函数逻辑与类有关联但不需要类或实例的任何信息:当你需要定义一些功能,这些功能虽然跟类相关,但执行时它们不需要类的任何信息(即不需要访问任何类变量或实例变量)。
  • 组织工具函数:如果有一些与类操作相关的工具函数,你可能希望将它们组织在一个类里面,以保持代码的组织和清晰。
  • 替代命名空间:当你想要使用类作为一个命名空间来避免函数名冲突时,可以定义静态方法。这样,你可以将相关的函数放在一个类下面,但这些函数并不需要访问类或实例的状态。
  • 继承管理:在子类中,你可能想要重用某个静态方法而不是实例方法。因为静态方法不与特定的实例或类状态关联,它们更容易在继承中被复用。
class MathUtils:
    @staticmethod
    def add(x, y):
        return x + y
    
# 静态方法可以通过类名直接调用,无需创建类的实例
result = MathUtils.add(5, 7)
print(result)  # 输出: 12

4. python的**运算符

  • 可以使用**来将字典中的项作为关键字参数传递给函数。
    def greet(first_name, last_name):
        print(f"Hello {first_name} {last_name}!")
    
    person = {'first_name': 'John', 'last_name': 'Doe'}
    
    greet(**person)  # 等同于 greet(first_name='John', last_name='Doe')

5. python自带的globals函数

  • 全局符号表,其中包含有关程序的所有信息,包含变量名,方法,类名等等。
    a = 5
    def func():
        c = 10
        d = c + a 
        globals()['a'] = d 
        print(d)  
    func()

文章作者: David Chan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 David Chan !
评论
  目录