本文主要介绍类Python方法的总结和解释。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容。有需要的朋友可以参考一下。
一、类方法
类中的函数称为类方法。它与普通的函数定义略有不同。
1.普通方法
1.1 普通方法定义
common method的定义与common function略有不同,第一个参数是self,指的是实例对象本身。下图定义了
班级人员:
def __init__(自己,姓名,年龄):
# name=对象名称,age=对象的年龄
self.name=name
年龄=年龄
1.2 普通方法调用
假设函数调用是函数名()。类的方法调用呢?
类调用必须依赖于对象。调用方法:对象。方法名称()。
不能直接使用类名和方法名()。前面说过,类中方法的第一个参数是self,代表实例对象本身,所以类不能直接调用普通方法。
#实例化对象cat
猫=动物()
#调用类中运行的普通方法
cat.run()
如果类名。使用了方法名称,将出现:typeerror: run()缺少1个必需的位置参数:“self”,并且缺少一个参数。
但事实上,当我们重复使用该对象时。方法名(),我们不带self,但是不报缺一个参数。
原因:当我们实例化对象的时候,也就是执行cat=Animal()的时候,我们已经把猫的地址传递给了self,这里self指的是猫。
2.魔术方法
2.1 魔术方法定义
在普通方法前面,需要调用对象名和方法名(),而我们的魔方法比较特殊,在特殊时刻自动触发,也就是不需要调用。
2.2常见魔术方法
__init__(self,[参数名])
创建对象时自动调用的方法。
__str__(self,[参数名])
该函数有一个返回值,并在打印对象名称时自动调用。
__del__(self)
删除引用时自动调用。
__call__(elf,[参数名])
当对象名()被执行时,它被自动调用,即对象被用作函数。
如图,我们只是创建了cat对象,没有调用__init__方法,而是执行了方法中的方法体,因为python在创建对象时自动触发了它。
__init__方法的作用是什么:
定义一个类时,常常要定义属性和方法,属性是类的一个特征,而方法是它能做的事情。
每个人都有名字和年龄,所以我们需要用两个属性定义一个Person类:名字和年龄。
如果你在课堂上写下下图
class Person():
名字='吉米'
年龄=12岁
定义运行(自身):
打印(“运行”)
人员1=人员()
人员2=人员()
所以Person1和Person2对象都有person的属性,但此刻都有相同的属性,却不符合每个人的特征?每个人的名字和年龄都不一样。如何才能创建对象的不同属性值?这里,我们使用__init__
班级人员:
def __init__(自己,姓名,年龄):
# name=对象名称,age=对象的年龄
self.name=name
年龄=年龄
人员1=人员('美美',12)
#打印person1的属性meimei 12。
打印(人员1 .姓名,人员1 .年龄)
person2=Person('john ',13)
# #打印人员1的属性john 13
打印(人员2 .姓名,人员2 .年龄)
__str__用于在打印对象时返回值,因此__str__有一个return语句。如果不打印带有__str__的对象,则该对象是地址。
班级人员:
def __init__(自己,姓名,年龄):
# name=对象名称,age=对象的年龄
self.name=name
年龄=年龄
# def __str__(self):
# return '这是姓名:{},这是年龄:{} '。格式(自我。名字,自我。年龄)
Person1=Person('meimei ',12) # Print result _ _ main _ _。0x000025c1f932c50处的个人对象
打印(人员1)
3.类方法
3.1 类方法定义
班级人员:
def __init__(自己,姓名,年龄):
# name=对象名称,age=对象的年龄
self.name=name
年龄=年龄
# def __str__(self,*krg,**krgs):
# return '这是姓名:{},这是年龄:{} '。格式(自我。名字,自我。年龄)
#类方法
@classmethod
定义测试1(cls):
打印(“我是类方法”)
该方法之前用decorator @classmethod进行了修饰。第一个参数是cls代表类。
类特性:普通方法不能在类方法中调用。
3.2 类方法调用
对象名称。方法名称()
类名。方法名称()
4.静态方法
4.1 静态方法定义
班级人员:
def __init__(自己,姓名,年龄):
# name=对象名称,age=对象的年龄
self.name=name
年龄=年龄
# def __str__(self):
# return '这是姓名:{},这是年龄:{} '。格式(自我。名字,自我。年龄)
定义运行(自身):
Person.test1()
Person.test()
打印(“我在跑”)
@classmethod
定义测试1(cls):
打印(“我是类方法”)
@静态方法
定义测试(*krgs):
Person.test1()
打印(“我是一个静态方法”)
静态方法用decorator @staticmethod修饰,没有CLS和self参数。
4.2 静态方法调用
对象名称。静态方法名()
类名。静态方法名()
二 总结
普通方法中:
你可以调用普通的方法,使用self。方法名称()
您可以使用类名调用静态方法。方法名称()
可以使用类名调用类方法。类名。方法名称()
静态方法:
不能调用普通方法。
可调用的类方法,类名。方法名称()
可调用静态方法,类名。方法名称()
类方法:
不能调用普通方法。
可调用的类方法,类名。方法名称()
可调用静态方法,类名。方法名称()
这就是本文对类Python方法的总结和解释。有关类似Python方法的更多总结内容,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。