python学习2(面向对象)

python 面向对象

在这里插入图片描述
python面向对象三大特性:继承,多态,封装

方法(函数)相关知识

#多个函数获取或改变一个全局变量
PATH = '' #全局变量
def getContentList(request):
    ...
    data = json.loads(request.body)
    path = data['path']
    global PATH #给全局变量在一个函数里赋值,必须使用global语句
    PATH = path #赋值全局变量
    return ...
def index(request):
	if len(PATH):
        path = PATH #使用改变后的变量
    return ...

python 面向对象 =》类,对象(作用:封装代码)
就是class 了 ,把 共同完成一个功能的多个函数 封装在一个类中
方法(函数) -》公有,私有 __

class Hero():
    sum = 0 #类变量
    
    def __init__(self,name,gender): #构造函数,(实例变量初始化)不能返回除None外的其他值
        self.hero_name = name #实例变量 self.xxxx  self代表对象
        self.skill = ['Q','W','E','R']
        self.base_skill = ['D','F']
        self.gender = gender
        self.__dead = False  #私有变量
        #self.__class__.sum += 1

    def print_skill(self): #实例方法 
        #print (self.skill)
        return self.skill
    def get_base_skill(self):
        self.iner_call()  #类内部函数间调用
        return self.base_skill
    def iner_call(self):
        print('iner call test.')

    def __hidden():  #私有方法
        print("hidden")

    @classmethod
    def plus_sum(cls):  #类方法
        cls.sum += 1
    @staticmethod  
    def add(x,y):  #静态方法(不经常使用)
        print('static method', x + y)

lux = Hero('lux','women') #实例化(使用class创建对象)
a = lux.print_skill()
b = lux.get_base_skill()
c = lux.plus_sum()
Hero.plus_sum() #sum + 1
Hero.add(3,4)
#print(lux.dead,Hero.__hidden())
print(lux.__dict__,'\n',a,b,c,Hero.sum,lux.sum)

继承

# class Father_class():  #父类
#     print ("i'm your father")    
# class Son_class(Father_class):  #子类
#     pass
# Son_class()

class Father():
    sum = 0
    def __init__(self,name,gender):
        self.name = name
        self.gender = gender
    
    def get_name(self):
        return self.name
    
    def hall(self):
        print('f11111')
        
class Son(Father):
    def __init__(self,area,name,gender):
        self.area = area
        #Father.__init__(self,name,gender) #传入self
        super(Son,self).__init__(name,gender) #调用父类
    
    def hall(self): #同名调用时调用子类
        print('1111')
    pass

a = Son('zu an','jinx','women')
print(a.name,a.gender,a.get_name())
Son.hall('2')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值