Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1075378
  • 博文数量: 120
  • 博客积分: 887
  • 博客等级: 准尉
  • 技术积分: 1883
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-05 21:10
个人简介

RHCE,CCNA,熟悉shell脚本

文章分类

全部博文(120)

文章存档

2015年(16)

2014年(20)

2013年(48)

2012年(20)

2011年(16)

分类: Python/Ruby

2014-01-11 23:13:24

python 面向对象 类的方法

#-*-coding:UTF-8 -*-
#Python模板
test = 'tttt' # 全局变量
name= "123"
class Ren():
# class Ren(object): -----这个就是新型类
    '''类里面的是成员变量,只在其类中起作用,跟函数的局部变量类似'''
    name="ren"                #    --    |
    high="yi ren gao"        #    --    | --- 成员变量
    wight="yi ren zhong"    #    --    |
    __money ="10 kuai qian"    # 私有属性

    def run(self): # self表示自己的类别
        print name # 报错,不能调用class中的name
        '''print name # 这里要是可以打印,打印的也是name=123'''
        print self.name # 意思是打印自己类中的name,即Ren类中的name="ren"
        print "pao bu"
        print self.__money #打印类的私有属性
    def say(self):
        lie = 'wo xihuan ni' # 这个是函数局部变量,不是属性。虽然也在类中

if __name__=="__main__":
    zhangsan=Ren()
    lisi=Ren()
    zhangsan.name='zhangsan'
    lisi.name='lisi'

python的属性按类别分为实例属性(对象属性)和静态属性(类属性)
两种:
    实例属性:是以self作为前缀的属性,实例属性定义在__init__方法中。如果__init__中的变量没有self,则变量只是一个普通的局部变量。
    例如:
        class Myclass:
            var1=0        #类属性
            def __init__(self):
                self.var2=0  #实例属性
                var3 = 0     #局部变量
类的属性:可以被类,以及实例对象访问,定义在类中的变量都是类的外部不能直接访问私有属性,私有属性只能被类本身所访问

方法的定义
    和函数定义一样,通常在定义一个类当中的方法,即这个函数时,大多数情况下需要self作为第一个参数,就是为了代表这个类本身

类的方法也分为:公有方法和私有方法,跟属性一样。
    私有方法——不能被外部的类和方法调用,只能被自己调用,私有方法的定义和私有属性的定义都是一样的,在方法的前面加上"__"
    类方法——被classmethod()函数处理过的函数,能被类所调用,也能被对象所调用(是继承的关系)
    静态方法——相当于"全局函数",可以被类直接调用,可以被所有实例化对象共享,通过staticmethod()定义
        静态方法没有"self"语句
self参数:
    用于区分函数和类的方法(必须有一个self),self参数表示指向对象本身

当类中有私有属性的时候,额外的需要获取私有属性的值或给私有属性赋值,我们一般会额外的增加一个方法
例如:
#-*-coding:UTF-8 -*-
#Python模板
test = 'tttt' # 全局变量
name= "123"
class Ren():
# class Ren(object): -----这个就是新型类
    '''类里面的是成员变量,只在其类中起作用,跟函数的局部变量类似'''
    name="ren"                #    --    |
    high="yi ren gao"        #    --    | --- 成员变量
    wight="yi ren zhong"    #    --    |
    __money ="10 kuai qian"    # 私有属性
    __age= "30"

    def run(self): # self表示自己的类别
        print name # 报错,不能调用class中的name
        '''print name # 这里要是可以打印,打印的也是name=123'''
        print self.name # 意思是打印自己类中的name,即Ren类中的name="ren"
        print "pao bu"
        print self.__money #打印类的私有属性
    def say(self):
        print "shuo hua"
        self.__lie()
    def __lie(self):
            print "wo hen xinshang ni "
            
    def get(self): # 当被调用get时,返回__money的值
       return self.__age
    return    self.__money
        
if __name__=="__main__":
    zhangsan=Ren()
    zhangsan.say()

    zm=zhangsan.get()
    print zm
阅读(722) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~