Python类中的方法(CLASS)
2016-08-20 20:26
337 查看
类方法定义
在类中可以根据需要定义一些方法,定义方法采用def关键字,在类中定义的方法至少会有一个参数,一般以名为'self'的变量作为该参数(用其他名称也可以),而且需要作为第一个参数。 举例:
class people:
sname='xiaohong' high = 172.5 weight = 180 sex = '男' def eat(self,food): print self.sname+"eat"+food
wangbaoqiang= people() #实例化 gaojiajun是people类的实例化对象
wangbaoqiang.sname=”王宝强”
self指的是类实例对象本身(注意:不是类本身)。
在上述例子中,self指向Person的实例gaojiajun,可以把它当做C++中类里面的this指针一样理解,就是对象自身的意思
类的私有属性和封装
如果想定义成私有的,则需在前面加2个下划线 ’ __’。私有属性只能在本类中使用
举例:
class people:
__sname=’xiaohong’
__high = 172.5
__weight = 180
__sex = ‘女’
def eat(self,food):
print self.sname+"eat"+food
def getsname(self):
return self.__sname
def setsname(self,str):
self.__sname=str
由于__sname是私有属性,在类的外面不能直接使用,所以我们定义了getsname去获取该属性的值、setsname去给该属性赋值,这种使用方法称为封装
Python类中内置的方法
在Python中有一些内置的方法,这些方法命名都有比较特殊的地方(其方法名以2个下划线开始然后以2个下划线结束)。1、init(self,….):构造方法,在生成对象时调用,可以用来进行一些初始化操作,不需要显示去调用,系统会默认去执行。构造方法支持重载,如果用户自己没有重新定义构造方法,系统就自动执行默认的构造方法。
2、del(self):析构方法,在释放对象时调用,支持重载,可以在里面进行一些释放资源的操作,不需要显示调用。
3、dict : 类的属性(包含一个字典,由类的数据属性组成)
4、doc :类的文档字符串
5、name: 类名
6、module: 类定义所在的模块(类的全名是’main.className’,如果类位于一个导入模块mymod中,那么className.module 等于 mymod)
7、bases : 类的所有父类构成元素(包含了以个由所有父类组成的元组)
类中方法的类型
类方法是类对象所拥有的方法,需要用修饰器”@classmethod”来标识其为类方法。它能够通过实例对象和类对象去访问。类方法的用途就是可以对类属性进行修改。对于类方法,第一个参数必须是类对象,一般以”cls”作为第一个参数,
举例:
class people:
country = 'china' @classmethod def getCountry(cls): #类方法 return cls.country @classmethod def setCountry(cls,country): #类方法 cls.country = country
p = people()
p.setCountry(‘japan’)
实例方法
在类中最常定义的成员方法,它至少有一个参数并且必须以实例对象作为其第一个参数,一般以名为’self’的变量作为第一个参数。(注意:不能通过类对象引用实例方法)
静态方法
需要通过修饰器”@staticmethod”来进行修饰,静态方法不需要多定义参数。
静态方法能够通过实例对象和类对象去访问,静态方法中如果有参数,则是必备参数
举例:
class people:
country = 'china' @staticmethod def getcountry(): return people.country @staticmethod def setcountry(countryName): people.country=countryName
print people.getcountry()
p=people()
print p.getcountry()
相关文章推荐
- python基础教程之类class定义使用方法
- python文件调用另一个python class文件中的方法
- Python 实例方法、@staticmethod和@classmethod
- Python中使用static、class、abstract方法
- Python class中的__call__()方法
- chapter9: python 类的方法,属性,迭代器(new[old]-type class,[un]bound method,super,protocol,property,iterators)
- python 获取 模块 class 中所有方法
- python类:class创建、数据方法属性及访问控制详解
- python实现class对象转换成json/字典的方法
- Python——class的基础知识(Python的实例方法,类方法,静态方法之间的区别及调用关系)
- Python 实例方法、@staticmethod和@classmethod
- Python使用metaclass实现Singleton模式的方法
- python classmethod类方法
- python类:class创建、数据方法属性及访问控制详解
- [笔记]Python class中的__call__()方法
- python基础教程之类class定义使用方法
- Python实现__metaclass__实现方法运行时间统计
- python staticmethod and classmethod方法
- class,类的详解, python, 笨方法学python
- python类:class创建、数据方法属性及访问控制