首页 > 编程语言 > 详细

python 类

时间:2019-10-09 23:39:19      阅读:91      评论:0      收藏:0      [点我收藏+]

类定义使用class 关键字

class 类名(父类可有多个 支持多继承):

  属性(和java一样)

  实例方法

  def __init__(self,属性):

    self.属性 = 属性

 

class myclass(object):
    name = ""
    id = ""
    def __init__(self,name):
        self.name=name
    def __init__(self,name,id):
        self.name = name
        self.id = id

    def __str__(self):
        print(self.name+str(self.id))
        return super.__str__(self)

无法支持重载
c1 = myclass(‘a‘,55)
c2 = myclass(‘b‘)
print(c1)
print(c2)

  可以依靠默认参数

class myclass(object):
    name = ""
    id = ""
    def __init__(self,name,id=18):
        self.name = name
        self.id = id

    def __str__(self):
        print(self.name+str(self.id))
        return super.__str__(self)


c1 = myclass(‘a‘,55)
c2 = myclass(‘b‘)
print(c1)
print(c2)

  属性的增删改查

查 实例类名.属性

c1.name

 

增加 实例类名.属性 = 

c1.age = 18

 

删除 del实例类名.属性

del(c1.age)

 

c1.name = "asdasd"

 

python 之中也可以隐藏属性  属性名字前加入__

class myclass(object):
    name = ""
    id = ""
    def __init__(self,name,id=18):
        self.name = name
        self.id = id
        self.__hide = 2

    def __str__(self):
        print(self.name+str(self.id))
        return super.__str__(self)
c1 = myclass(‘a‘,55)
#无法直接调用
print(c1.__hide)
#类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类__dict__里的
print(c1.__dict__)
#{‘name‘: ‘a‘, ‘id‘: 55, ‘_myclass__hide‘: 2}   属性被改名了
#查看隐藏属性
print(c1._myclass__hide)

  

一般会将一些私有属性(不希望被外部访问的属性)以_开头 但还是能访问 只是代表不要直接访问

@property
可以将方法变成属性
@property
    def print(self):
        return "%s-%s"%(self.name,self.id)

    @property
    def print2(self):
        print("%s-%s"%(self.name,self.id))

  结果

b-18
b-18
None

 

python 类

原文:https://www.cnblogs.com/hywhyme/p/11644848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!