python的class 20191227

关于class 20191227

class Box1():
    def __init__(self,length1,width1,height1):
        self.length = length1
        self.width = width1
        self.height = height1
    def volume(self):
        return self.height * self.width * self.length

#mybox1 = Box1(7,8,9)
#print "立方体的体积为:{}".format(Box1(7,8,9).volume())

父类子类

# 例7.3
class Box1(object):
    def __init__(self,length1,width1,height1):
        self.length = length1
        self.width = width1
        self.height = height1
    def volume(self):
        return self.height * self.width * self.length
        
class Box2(Box1):
    def __init__(self,length1,width1,height1):
        super(Box2,self).__init__(length1,width1,height1)  # super实现父类与子类的关联
        # python3可直接用以下代码
#        super().__init__(length1,width1,height1)
        # 以下是子类中增加的新属性和方法
        self.color = 'white'
        self.material = 'paper'
        self.type = 'fish'
    def area(self):  # 求表面积
        re = self.length * self.width + self.length *self.height + self.width * self.height
        return re * 2

只允许这个类自身访问

# 只允许这个类自身访问:让类定义的变量或函数变成私有的,在名字前加双下划线即可

# 例7.4
class TeatPrivate():
    def __init__(self):
        self.__say = 'Ok'
    def p(self):
        print self.__say
    def __p1(self):
        print self.__say

show = TeatPrivate()
#show.p()
#show.__p1
#print show.__say
############## 以上三条报错

静态类

'''
1.静态类,类内部没有self关键字,不能被实例化
2.不能通过类名传递参数
3.静态类不支持__init__初始化函数
4.不能被真正实例化,但可以集成变量或函数,是一个带结构的数据类型
'''

# 例7.6
class StaticC():
    name = 'Tom'
    age = 20  
    address = 'China'
    call = 28380000
    # 以上四个都是类局部变量
    def a():#类内部没有self关键字,不能被实例化
        # 函数a,没有self参数,不能叫方法
        i = 0
        i += 1
#        print i
        return i
    def b(add=1):
        print add
    def c(add=1):
        print add
        return add

#s1 = StaticC()
#s1.a()  # 会报错,不能实例化调用a函数,实例化,新建一个实例

# 静态类特点1:可以直接用类名调用其内部的变量和函数

#调用变量
#print StaticC.name
#print StaticC.age
#print StaticC.address
#print StaticC.call

#调用函数
#print StaticC.a()
#print StaticC.a
#print StaticC.b()
#print StaticC.c(3)  # 会报错!!!!!!!静态类调用函数

# 静态类特点2:在调用处可以直接修改静态类变量值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值