有关 Python 类方法的更多信息


在 Python 中,类是创建对象的模板。它定义了该类的对象将具有的属性和行为。方法是在类内部定义的函数,用于对该类对象的属性执行操作。
有关 Python 类方法的更多信息

以下是可以在类中定义的不同方法的一些示例:

  1. __init__方法:这是 Python 中的一个特殊方法,在创建类的对象时调用。它用于初始化对象的属性。例如:
class  Person : 
  def  __init__ ( self, name, age ): 
    self.name = name 
    self.age = age 
    
# 定义一个人
person1 = Person( "John" , 30 ) 
# 输出:"John" 
print (person1.name)   
#输出:30
打印(person1.age)   

2.method __str__:该方法用于定义一个对象的字符串表示。当打印对象或将其转换为字符串时调用它。例如:

 Person : 
  def  __init__ ( self, name, age ): 
    self.name = name 
    self.age = age 
    
  def  __str__ ( self ): 
    return  f" {self.name}{self.age}岁。" 
    
person1 = Person( "John" , 30 ) 

# 输出:“John 30 岁。” 
打印(人 1)  

3. 实例方法:这些是对特定对象的属性进行操作的方法。可以在类的对象上调用它们。例如:

 Person : 
  def  __init__ ( self, name, age ): 
    self.name = name 
    self.age = age 
    
  def  introduce ( self ): 
    return  f"嗨,我叫{self.name},我是{self.age}岁。” 
    
person1 = Person( "John" , 30 ) 

# 输出:“嗨,我叫约翰,今年 30 岁。” 
打印(person1.introduce())  

4. 类方法:这些是绑定到类而不是类对象的方法。它们可以在类本身以及类的任何对象上调用。它们装饰有@classmethod例如:

class  Person : 
  # 类属性
  species = "Human"   
  
  def  __init__ ( self, name, age ): 
    self.name = name 
    self.age = age 
    
  @classmethod 
  def  get_species ( cls ): 
    return cls.species 
    
person1 = Person( "John" , 30 ) 

# 输出:“人类” 
print (person1.get_species())   

# 输出:“人类” 
print (Person.get_species())   

5.静态方法:这些是绑定到类而不是类对象的方法。它们不关心类的实例状态,也无权访问实例属性。它们装饰有@staticmethod下面是一个静态方法的例子:

 数学
  @staticmethod 
  def  add ( x, y ): 
    return x + y 

# Output: 5 
print (Math.add( 2 , 3 ))  

在此示例中,该add方法是一个静态方法,它接受两个参数xy返回它们的总和。该方法是在Math类本身上调用的,而不是在Math类的对象上调用的。

这是将温度从摄氏度转换为华氏度的静态方法的另一个示例:

 温度
  @staticmethod 
  def  celsius_to_fahrenheit ( celsius ): 
    return celsius * 9 / 5 + 32 

# Output: 68 
print (Temperature.celsius_to_fahrenheit( 20 ))  

在此示例中,该celsius_to_fahrenheit方法是一个静态方法,它以摄氏度为单位获取温度并返回以华氏度为单位的等效温度。

静态方法是使用@staticmethod装饰器定义的。它们是在类本身上调用的,而不是在类的对象上调用的。它们无权访问类的实例属性,通常用于不需要访问任何类特定状态的实用程序函数。

本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;

2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;

3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;

4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;

5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/295001.html

(0)
上一篇 2022年12月29日
下一篇 2022年12月30日

相关推荐

发表回复

登录后才能评论