Python类中的方法(CLASS)

类方法定义

    在类中可以根据需要定义一些方法,定义方法采用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()

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值