python类中函数的变量

  • Post category:Python

在 Python 类中定义的函数有许多变量,以 self 开头的是实例变量,以类名开头的是类变量,还有一些其他变量需要注意。下面对 Python 类中函数的变量进行详细讲解:

  1. self:它是实例方法的一个参数,指向当前调用该方法的实例。在方法内可以通过 self 访问实例的属性和其他方法。示例如下:

“`python
class Person:
def init(self, name, age):
self.name = name
self.age = age

   def say_hello(self):
       print(f"Hello, my name is {self.name} and I am {self.age} years old.")

p = Person(‘Tom’, 20)
p.say_hello() # 输出:Hello, my name is Tom and I am 20 years old.
“`

  1. cls:它是类方法的一个参数,指向当前调用该方法的类。在方法内可以通过 cls 访问类的属性和其他方法。示例如下:

“`python
class Person:
count = 0

   def __init__(self, name, age):
       self.name = name
       self.age = age
       Person.count += 1

   @classmethod
   def get_count(cls):
       print(f"There are {cls.count} person(s) in total.")

p1 = Person(‘Tom’, 20)
p2 = Person(‘Jerry’, 21)
Person.get_count() # 输出:There are 2 person(s) in total.
“`

  1. @property@property.setter:它们是用来定义属性的装饰器,可以把一个方法“伪装”成一个属性。@property 用来访问属性,@property.setter 用来设置属性。示例如下:

“`python
class Person:
def init(self, name):
self._name = name

   @property
   def name(self):
       print(f"Getting name: {self._name}")
       return self._name

   @name.setter
   def name(self, value):
       print(f"Setting name: {value}")
       self._name = value

p = Person(‘Tom’)
p.name # 输出:Getting name: Tom
p.name = ‘Jerry’ # 输出:Setting name: Jerry
p.name # 输出:Getting name: Jerry
“`

  1. *args**kwargs:它们是用来接收任意数量的参数的。*args 用来接收任意数量的位置参数,**kwargs 用来接收任意数量的关键字参数。示例如下:

“`python
class Calculator:
def add(self, *args):
result = 0
for arg in args:
result += arg
return result

   def multiply(self, **kwargs):
       result = 1
       for key in kwargs:
           result *= kwargs[key]
       return result

c = Calculator()
print(c.add(1, 2, 3, 4, 5)) # 输出:15
print(c.multiply(a=1, b=2, c=3, d=4, e=5)) # 输出:120
“`

以上就是 Python 类中函数变量的完整攻略。在实际开发中,需要根据具体的需求选择合适的变量类型和使用方式。