您的位置:首页 > 编程语言 > Python开发

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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息