python类方法和变量

在Python中,类的方法默认并不是classmethod,而是实例方法。实例方法的第一个参数通常命名为self,用于指向调用该方法的实例。classmethod需要显式使用@classmethod装饰器,并且第一个参数通常命名为cls,指向类本身。

class MyClass:
    # 实例方法
    def instance_method(self):
        print("这是一个实例方法")
    
    # 类方法
    @classmethod
    def class_method(cls):
        print("这是一个类方法")
    
    # 静态方法
    @staticmethod
    def static_method():
        print("这是一个静态方法")

# 创建类的实例
obj = MyClass()

# 调用实例方法
obj.instance_method()  # 输出:这是一个实例方法

# 调用类方法
MyClass.class_method()  # 输出:这是一个类方法

# 调用静态方法
MyClass.static_method()  # 输出:这是一个静态方法

Python中的访问控制:Public, Private, Protected

Python中没有像C++或Java那样严格的访问控制,但可以通过命名约定和特定语法来实现类似的效果:

  1. Public:默认情况下,所有方法和属性都是公共的,可以在类外部访问。

     2.Protected

  • 以单下划线_开头,表示受保护的属性或方法,约定上不建议在类外部直接访问。

    3.Private

  • 以双下划线__开头,表示私有的属性或方法,Python会进行名称改写(name mangling),使其在类外部难以直接访问。

Python类中的全局变量和局部变量

  1. 类属性(类变量)
    • 定义在类内部且在所有方法之外的变量。
    • 共享给所有实例。
      class MyClass:
          class_variable = 0
      
          def __init__(self):
              MyClass.class_variable += 1
      

实例属性(实例变量)

  • 定义在__init__方法或其他方法中的变量。
  • 每个实例有自己独立的实例变量。

class MyClass:
    def __init__(self, value):
        self.instance_variable = value

受保护变量和方法

使用单下划线(Protected)
  • 以单下划线_开头的变量和方法被认为是受保护的,约定上不建议在类外部直接访问。

taizilongxu/interview_python: 关于Python的面试题 (github.com) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值