内容简介:类方法是类对象的方法,在定义时需要在上方使用输出结果:静态方法是一个任意函数,在其上方使用
类方法
类方法是类对象的方法,在定义时需要在上方使用 @classmethod
进行装饰,形参为 cls
。表示类对象,类对象和实例对象都可调用。
class Person: def __init__(self, name, age, phone): self.name = name self.age = age self._phone = phone @classmethod def say(cls): # 传递参数为cls print("Hello......") p = Person("fzy", 24, "13111112222") p.say() # 类的实例对象调用 Person.say() # 类对象调用
输出结果:
Hello...... Hello......
静态方法
静态方法是一个任意函数,在其上方使用 @staticmethod
进行装饰,可以用对象直接调用,静态方法实际上跟该类没有太大关系。
class Person: def __init__(self, name, age, phone): self.name = name self.age = age self._phone = phone @staticmethod def say(): # 无需传递参数 print("Hello......") p = Person("fzy", 24, "13111112222") p.say() # 类的实例对象调用 Person.say() # 类对象调用
输出结果:
Hello...... Hello......
在 Python 3 中,如果方法只通过类调用,而不需要通过实例调用的话,不用非要声明为静态的。
class Person: def __init__(self, name, age, phone): self.name = name self.age = age self._phone = phone @staticmethod def say(): # 无需传递参数 print("Hello......") p = Person("fzy", 24, "13111112222") p.say() # 类的实例对象调用 Person.say() # 类对象调用
实例方法
类实例方法是类实例化对象的方法,只有实例对象可以调用,形参为 self
,指代对象本身。
class Person: def __init__(self, name, age, phone): self.name = name self.age = age def say(self): # 传递参数self print("My name is ", self.name) p = Person("fzy", 24, "13111112222") p.say() # 类的实例对象调用
输出结果:
My name is fzy
属性方法
通常,在面向对象的编程语言里,会为私有属性设置 getter
和 setter
方法来实现对私有属性的获取和设置功能。如下所示:
class Person: def __init__(self, name, age): self._name = name self._age = age def get_name(self): return self._name def set_name(self, value): self._name = value def get_age(self): return self._age def set_age(self, value): self._age = value p = Person("fzy", 24) print(p.get_name(), p.get_age()) p.set_name("cj") p.set_age(23) print(p.get_name(), p.get_age())
输出结果:
fzy 24 cj 23
属性方法的作用就是通过 @property
把一个方法变成一个静态属性。使用 property
取代 getter
和 setter
方法。
class Person: def __init__(self, name, age): self._name = name self._age = age @property def name(self): return self._name @name.setter def name(self, value): self._name = value @property def age(self): return self._age @age.setter def age(self, value): self._age = value p = Person("fzy", 24) print(p.name, p.age) p.name = "cj" p.age = 23 print(p.name, p.age)
输出结果:
fzy 24 cj 23
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 面向Python,面向对象(基础)
- 面向Python,面向对象(基础3)
- <<深入PHP面向对象、模式与实践>>读书笔记:面向对象设计和过程式编程
- 《JavaScript面向对象精要》之六:对象模式
- 《JavaScript面向对象精要》之三:理解对象
- 面向对象的程序设计之理解对象
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML5+CSS3精致范例辞典
杨东昱 / 清华大学出版社 / 2013-1 / 48.00元
《HTML5+CSS3精致范例辞典(全彩印刷)》是专为希望成为网页设计师的学习者打造的工具书,书中详细说明了设计网页所需的HTML标记语言,对HTML5的网页标签规范作了完整说明,如元素标签的功能、属性以及如何使用等。有了基本网页制作能力,如何让网页更出色,版面更富变化、更易维护管理,那就得靠CSS帮忙了。《HTML5+CSS3精致范例辞典(全彩印刷)》还详细解说了最新CSS3的样式元素,除了说明......一起来看看 《HTML5+CSS3精致范例辞典》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
MD5 加密
MD5 加密工具