Python 中的类

类:具有相同属性和方法的对象的集合

语法:

class 类名:
    属性
    方法

对象的三要素:属性(对象是什么)、方法(对象能做什么)、事件(对象如何响应)

相互关系:类是对象的抽象,对象是类的实例,类是一种抽象事物的分类,对象是一种实例;

一、属性

概念:用于访问类字段的成员;
属性用途:保证数据的安全,作数据的验证;

属性分:实例属性和类属性
1.实例属性

init(self,..)中初始化,内部调用时需要加self。外部调用时用对象.属性名调用。

2.类属性

init()外初始化,在内部用类名.类属性名调用。
外部既可以用类名.类属性名又可以用实例化对象.类属性名来调用

3.类的私密属性

1):单下划线_开头:只是告诉别人这是私有属性,外部依然可以访问更改

2):双下划线__开头:外部不可通过实例化对象.属性名来访问或者更改,一旦属性被私有化,即使继承它的字类也不能访问到。

class women():
    def __init__(self,name):
        self.__name = name
        self.__age = 21
    def secret(self):            ##在类的内部创建方法调用私有属性
        a = self.__age
        print a
    def __str__(self):
        return self.__namewomen('Lily')

a = women('Lily')               ##在类的外部不能直接调用私有属性
a.secret()

二、方法

1.类的静态方法

静态方法,实际上就是一个方法,位于类定义的命名空间中,不会对任何实例类型进行操作,用python的函数staticmethod来把类中的函数定义成静态方法

class Human(object):
    count = 0


    @staticmethod
    def call():              ##staticmethod
        print "Human is the Evil"
    def __init__(self,name):
        self.name = name
        Human.count += 1

h1 = Human('p1')
h2 = Human('p2')

Human.call()
2.类方法

类方法是给类用的,类在使用时会将类本身当做参数传给类方法的第一个参数,python为我们内置了函数classmethod来把类中的函数定义成类方法

类方法,表示方法绑定到类。

calssmethod和staticmethod不需要实例化名就可以直接调用。
class Human(object):
    count = 0

    @classmethod
    def show_count(cls):
        print "The number:%s" % cls.count
    def __init__(self,name):
        self.name = name
        Human.count += 1

h1 = Human('p1')
h2 = Human('p2')
Human.show_count()

3.类的内置方法

__dict__: 类的属性(包含一个字典,由类的数据属性组成)
__doc__:类的文档字符串
__name__: 类名
__module__: 类定义所在的模块(类的全名是__main__.classNam‘,如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

(1) __new__(cls,*agrs,**kwargs)
在类调用init方法时,new方法决定是否要用init方法,因为new可以调用其他类的方法,或者返回别的对象来作为本类的实例;

new()方法的特性:

 new()方法时在类准备将自身实例化时调用;
 new()方法始终都是类的静态方法,即使没有被加上静态方法装饰器;

__new__()

                       ##内存空间相同
class MusicPlayer(object):
    instance = None
    def __new__(cls, *args, **kwargs):
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值