精华内容
下载资源
问答
  • python类

    千次阅读 2020-08-05 11:56:53
    python类主要包含类变量、类方法、实例变量,定义格式如下: class demo: # 定义一个demo类 name = 'default_name' # name为类变量 def print_name(self): # 类方法 print(self.name) def set_age(self, age):...

    类的定义

    python类主要包含类变量、类方法、实例变量,定义格式如下:

    class demo:  # 定义一个demo类
        name = 'default_name'  # name为类变量
    
        def print_name(self):  # 类方法
        print(self.name)
    
        def set_age(self, age):  # 类方法
            self.age = age  # age为实例变量
    
        def print_age(self):  # 类方法
            print(self.age)
    

    类变量:在类中定义好的变量,例如上面的name
    类方法:在类中定义的方法,例如上面的print_name()、set_age()、print_age()
    实例变量:对实例对象的变量赋值就会创建一个新的实例变量,例如上面的age

    注意示例代码中的self,类似于C++的类的this指针,类中的函数称为实例方法,所有实例方法的第一个参数都会被绑定到方法的调用者(该类的实例对象),因此所有实例方法第一个参数必须有self,当然,第一个参数不一定要是self,可以改成任何你想要的变量名,不过self是约定俗成的习惯。

    self指向实例对象本身,如果不用self.name的形式,只会新建一个name变量。

    构造方法
    特殊的一种方法,类似于C++的构造函数,init(init前后分别两个下划线),用于初始化新创建的类实例。

    私有变量和方法

    私有变量(方法)只需要在类名(方法名)前面加上双下划线即可。但是,python中的私有变量并非一定不可在外部访问,只需要用对象名._类名私有变量名的形式访问即可。

    class demo:  # 定义一个demo类
        __name = 'default_name'  # name为私有变量
    
    
    temp = demo()
    # print(temp.__name)  # 此处打印报错
    print(temp._demo__name)  # 此处可以打印
    

    参考资料

    1. Python class定义类,Python类的定义(入门必读)
    2. Python:为什么类中的私有属性可以在外部赋值并访问?
    展开全文
  • python

    千次阅读 2019-09-20 20:55:11
    Python 的定义 class ClassName(): def __init__(self,parameter1,parameter2,[parameter...]): self.parameter1 = parameter1 ##省略## 的继承 class Car(): ##省略## class ElectricCar(Car): def...

    Python 类

    类的定义

    class ClassName():
    	def __init__(self,parameter1,parameter2,[parameter...]):
    		self.parameter1 = parameter1
    		##省略##
    

    类的继承

    class Car():
    	##省略##
    
    class ElectricCar(Car):
    	def __init__(self,parameter1,parameter2,[parameter...]):
    		super().__init__(parameter1,parameter2,[parameter...])
    

    重写父类的方法

    在子类中把代码重写一遍就行

    在一个模块中导入另一个模块

    展开全文
  • python类 object

    千次阅读 2018-09-18 00:00:11
    object类:所有Python类的基类
    展开全文
  • python类的实例方法、静态方法和类方法区别及其应用场景 一、先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法。 ps.python中self,cls的区别 普通实例方法,第一个参数需要是self,它表示一...

    python类的实例方法、静态方法和类方法区别及其应用场景

    一、先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法。

     

    ps.python中self,cls的区别

    普通实例方法,第一个参数需要是self,它表示一个具体的实例本身。
    如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
    而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身。

    # coding:utf-8
    class Foo(object):
        """类三种方法语法形式"""
    
        def instance_method(self):
            print("是类{}的实例方法,只能被实例对象调用".format(Foo))
    
        @staticmethod
        def static_method():
            print("是静态方法")
    
        @classmethod
        def class_method(cls):
            print("是类方法")
    
    foo = Foo()
    foo.instance_method()
    foo.static_method()
    foo.class_method()
    print('----------------')
    Foo.static_method()
    Foo.class_method()

    运行结果如下

    是类<class '__main__.Foo'>的实例方法,只能被实例对象调用
    是静态方法
    是类方法
    ----------------
    是静态方法
    是类方法

    说明:

    实例方法只能被实例对象调用,静态方法(由@staticmethod装饰的方法)、类方法(由@classmethod装饰的方法),可以被类或类的实例对象调用。

    实例方法,第一个参数必须要默认传实例对象,一般习惯用self。
    静态方法,参数没有要求。

    类方法,第一个参数必须要默认传类,一般习惯用cls。

    二、静态方法、类方法使用区别或者说使用场景

     

    1、类方法用在模拟java定义多个构造函数的情况。

     由于python类中只能有一个初始化方法,不能按照不同的情况初始化类。

    参考django https://docs.djangoproject.com/en/1.9/ref/models/instances/ 请看下面的代码。

    # coding:utf-8
    class Book(object):
    
        def __init__(self, title):
            self.title = title
    
        @classmethod
        def class_method_create(cls, title):
            book = cls(title=title)
            return book
    
        @staticmethod
        def static_method_create(title):
            book= Book(title)
            return book
    
    book1 = Book("use instance_method_create book instance")
    book2 = Book.class_method_create("use class_method_create book instance")
    book3 = Book.static_method_create("use static_method_create book instance")
    print(book1.title)
    print(book2.title)
    print(book3.title)

    结果:

    use instance_method_create book instance
    use class_method_create book instance
    use static_method_create book instance
    
    Process finished with exit code 0

    特别说明,静态方法也可以实现上面功能,当静态方法每次都要写上类的名字,不方便。

    2、类中静态方法方法调用静态方法和类方法调用静态方法例子。
    下面的代码,静态方法调用另一个静态方法,如果改用类方法调用静态方法,可以让cls代替类,

    让代码看起来精简一些。也防止类名修改了,不用在类定义中修改原来的类名。

    # coding:utf-8
    class Foo(object):
        X = 1
        Y = 2
    
        @staticmethod
        def averag(*mixes):
            return sum(mixes) / len(mixes)
    
        @staticmethod
        def static_method():  # 在静态方法中调用静态方法
            print "在静态方法中调用静态方法"
            return Foo.averag(Foo.X, Foo.Y)
    
        @classmethod
        def class_method(cls):  # 在类方法中使用静态方法
            print "在类方法中使用静态方法"
            return cls.averag(cls.X, cls.Y)
    
    foo = Foo()
    print(foo.static_method())
    print(foo.class_method())

    结果:

    在静态方法中调用静态方法
    1
    在类方法中使用静态方法
    1

    3、继承类中的区别 

    从下面代码可以看出,如果子类继承父类的方法,子类覆盖了父类的静态方法,
    子类的实例继承了父类的static_method静态方法,调用该方法,还是调用的父类的方法和类属性。

    子类的实例继承了父类的class_method类方法,调用该方法,调用的是子类的方法和子类的类属性。

    # coding:utf-8
    class Foo(object):
        X = 1
        Y = 14
    
        @staticmethod
        def averag(*mixes):  # "父类中的静态方法"
            return sum(mixes) / len(mixes)
    
        @staticmethod
        def static_method():  # "父类中的静态方法"
            print "父类中的静态方法"
            return Foo.averag(Foo.X, Foo.Y)
    
        @classmethod
        def class_method(cls):  # 父类中的类方法
            print "父类中的类方法"
            return cls.averag(cls.X, cls.Y)
    
    
    class Son(Foo):
        X = 3
        Y = 5
    
        @staticmethod
        def averag(*mixes):  # "子类中重载了父类的静态方法"
            print "子类中重载了父类的静态方法"
            print "666 ",mixes
            return sum(mixes) / 3
    
    p = Son()
    print "result of p.averag(1,5)"
    print (p.averag(1,5))
    print "result of p.static_method()"
    print(p.static_method())
    print "result of p.class_method()"
    print(p.class_method())

    结果如下:

    result of p.averag(1,5)
    子类中重载了父类的静态方法
    666  (1, 5)
    2
    result of p.static_method()
    父类中的静态方法
    7
    result of p.class_method()
    父类中的类方法
    子类中重载了父类的静态方法
    666  (3, 5)
    2

    Process finished with exit code 0

    参考网址:https://zhuanlan.zhihu.com/p/21101992

    展开全文
  • Python随记(七)Python类与类的继承之简析

    千次阅读 多人点赞 2018-01-28 18:38:46
    Python随记(七)Python类与类的继承之简析 本篇博文描述的是python3, python2与3在类的的一些细节上有点区别 1.类 类是用来描述具有相同属性和方法的对象的集合。对象是类的实例。 基本格式: Class ...
  • Python 与对象

    万次阅读 多人点赞 2019-04-10 16:49:40
    与对象的理解与封装特性 面向对象编程语言 - : 一个模板, (人类)---是一个抽象的, 没有实体的 - 对象: (eg: 张三, 李四) - 属性: (表示这东西的特征, 眼睛, 嘴巴, 鼻子) - 方法: (表示这物体可以...
  • Python学习笔记(13)-Python类与对象示例

    千次阅读 多人点赞 2017-05-03 15:30:40
    一,简介Python支持面向对象编程,所以很容易使用Python时可以使用...Python类的定义 Python类的实例化 Python类中属性的访问控制 二,Python类的定义举个栗子先:class Car:#定义了类 name="解放牌大卡车"#定义了一
  • Python分类求和方法

    千次阅读 2018-11-27 16:40:51
    Python分类求和方法,Excel表格数据为例。 在Excel中经常会有根据列分类求和的需求,如果数据较少,可以在Excel中通过手动筛选的方法,但是数据较多那就比较麻烦啦。 这里需要用到groupby函数,pandas提供了一个...
  • Python类属性、类方法和静态方法

    千次阅读 2019-06-05 15:12:54
    Python类属性、类方法和静态方法 在Python中,一切皆对象。通过类创建出来的对象是实例对象,类本身也是对象,称为类对象。 一、类属性 对象都有属性,我们常说的对象属性是实例对象拥有的属性,又称为实例属性。...
  • python类方法的使用

    千次阅读 2019-04-15 19:36:17
    一、python类方法的特性 1、与静态方法一样,类方法可以通过类名调用类方法。 2、与静态方法一样,类成员方法无法访问对象实体变量,可以访问类的静态变量。 3、类方法需要传入代表本类的cls参数。 4、使用@...
  • Python类定义字类变量与实例变量

    千次阅读 2018-01-19 11:02:01
    学过JAVA或C++等语言的程序员再去学Python类设计时感觉非常不适应,因为Python是在太自由了,让人无所适从,来python定义类时的变量来说,其定义方式、作用域、操作方法都与上述两种语言有更大的可操作空间。Python...
  • Python类的定义和使用

    万次阅读 多人点赞 2019-03-06 10:35:18
    为了代码的编写方便简洁,引入了的定义; 一般,使用 class 语句来创建一个新,class之后为的名称(通常首字母大写)并以冒号结尾,例如: class Ticket(): def __init__(self,checi,fstation,tstation,fdate,...
  • 为了让更多的人看到本文,请各位读者动动小手,点击右上角【...】,将本文分享到朋友圈,thanks!Python类的定义再简单不过了。不过你有想过动态定义一个Python类吗?What...
  • python类共享变量详解

    千次阅读 2018-08-27 11:40:43
    python类对象A,先实例化一个A对象的实例b,接着给A对象添加一个类共享变量xxx,再实例化一个c,请问b 和c都有变量xxx吗   解答: python类共享变量,是不需要实例化就可以调用的, 比如类A有一个XXX的类共享...
  • Python 的继承查找顺序

    千次阅读 2017-07-06 16:24:50
    Python 的继承查找顺序
  • Python类和对象的理解

    千次阅读 2018-12-12 19:48:43
    Python类 类 是对一群具有相同特征 或者行为的事物的一个统称。是抽象的,不能直接使用。 因此类的主要作用是表示某些特征和行为,在Python中 特征被称为属性 行为被称为方法 理解类和对象的关系 类好比制造飞机的...
  • python类的调用方式详解

    万次阅读 多人点赞 2018-01-21 13:55:25
    python类的调用模式详解 这里简单的认为创建完对象,eat方法,drink方法就在对象中,其实根据了解,这些方法应该存在类空间中,对象中保存了引用指向类中的方法 (开始的教程也是这么说的:暂时认为存放在对象...
  • Python类编写

    千次阅读 2009-02-14 19:20:00
    Python类编写(原创) 今天开始进行Python类编写的学习,用起来还是比较简单的,Python允许在任何成员函数中声明一个类的成员变量,不过实际开发的时候这种做法不是一个好习惯。个人认为,Python类的成员变量最好是...
  • python类内部实现多进程

    千次阅读 2019-03-19 23:10:22
    python类内部实现多进程 工作中写一个自动化脚本, 为了提高效率, 需要在类的内部启多进程, 代码逻辑如下: # –*– coding: utf-8 –*– # @Time : 2019/3/19 21:11 # @Author : Damon_duanlei # @FileName : process...
  • 一、说明:C++项目中用到python相关的知识,这两天研究了一下C++与python的混合编程,网上有很多这方面的介绍,但是怎么使用python类的构造函数中传参的介绍却没有,这里研究一下,分享出来。(C++和python相互调用的...
  • python类的继承和重写

    千次阅读 2019-02-13 17:44:09
    python类的继承和重写 继承父类方法 子类可以直接调用父类的方法 class Person(): def __init__(self): pass def hello(self): print 'hello' class Student(Person): def __init__(self): pass ...
  • Python 的定 义

    千次阅读 2013-07-05 15:55:38
    Python 是完全面向对象的:你可以定义自已的,从自已的或内置的继承,然后从你定义的创建实例。 在 Python 中定义很简单。就像定义函数,没有单独的接口定义。只要定义,然后就可以开始编码。Python 以...
  • Python类中的中self的由来

    千次阅读 2019-03-11 22:33:46
    Python类中的中self的由来 1.由类创建对象 要使用一个类需要从类创建对象,这称为对象实例化。Eg: 假设创建的类为(暂时定义为一个空类): class Co...
  • python类的三种方法

    千次阅读 2018-07-09 15:20:56
    python类有三种方法。 1.一般方法,即不加任何修饰的,直接用def定义的方法。如: In [14]: class A: ...: def a(self): ...: print('一般方法') ...: In [15]: class_A = A() In [16]: class_A.a() 一般...
  • Python类的继承与多继承

    千次阅读 2019-08-11 15:17:28
    Python类的继承与多继承 继承 两个中有大量重复的代码,是否能够只写一次 ?抽象出一个更抽象的类,放公共代码 通过继承能够重用代码,方便代码的管理和修改 继承并不是复制变量空间,子类更新成员变量,但是父类的...
  • Python类中的 私有变量和私有方法

    万次阅读 多人点赞 2016-10-20 17:41:41
    python类中的私有变量和私有方法 下划线 name mangling 技术
  • Python类的继承的练习

    千次阅读 2017-07-15 16:13:14
    Python类的继承的小例子关于父类与子类的小例子class human(object): def __init__(self,name,eye=2,age=None): self.name = name self.eye = eye self.age = age def action(self): print("%s有%
  • Python类变量和实例变量区别

    万次阅读 2014-03-11 14:43:13
    深入理解python类的实例变量和类变量 Python变量的本质:被赋值 1 普通python变量(非类相关变量)很容易理解,在被赋值后即变量存在,可读可写 2 Python类的变量(类变量和实例对象变量)以某种方式在某地方被赋值...
  • Python类声明私有变量和私有方法

    千次阅读 2018-11-10 11:47:53
    Python类声明私有变量和私有方法 类的私有变量和私有方法 在Python中可以通过在属性变量名前加上双下划线定义属性为private;添加_变成protected. 语法规则:特殊变量命名 _xx 以单下划线开头的表示的是protected...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 195,846
精华内容 78,338
关键字:

python类

python 订阅