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
阅读(767) | 评论(0) | 转发(0) |