python类

python 基础 5.3 类的重写

主宰稳场 提交于 2019-12-17 04:14:54
一. 类的重写 只需要重新定义类的属性(变量),就是累的重写了 示例:重新定义类grandson的 name属性 #/usr/bin/python #coding=utf-8 #@Time :2017/11/6 15:23 #@Auther :liuzhenchuan #@File :类的重写.py class parent( object ): name = 'parent' sex = 'F' coller = 'yellow' language = 'chinese' def __init__ ( self ): print 'my name is {0}' .format( self .name) def get_sex( self ): return self .name a = parent() a.get_sex() print '#' * 15 class child( object ): name = 'child' coller = 'yellow' def __init__ ( self ): print 'my name is {0}' .format( self .name) def get_coller( self ): return self .coller b = child() print b.get_coller() print '#' * 15

python(7)-类的定义-对象的实例化-实例源码

北慕城南 提交于 2019-12-15 17:30:22
python 中类的定义与调用。与C++,java比,用self 代替this ,实例化时无需new. 对于一个用过其他语言编程的人来说,直接看下源码就知道如何实现类与对象实例化了。 """ 1.类的定义 构造函数 Class Penple: #类名 #构造函数 def __init__(self,name,age): 构造函数 self.name=name self.age=3 print("init name={},age={}".format(self.name, self.age)) def speak(self): self.add() print("speak name={},age={}".format(name,age)) def add(self): self.age+=1 self.name+="add" print("add name={},age={}".format(name,age)) 2,实例化类 p=People('zhangsan') p.speak() p.add() """ class People: def __init__(self,name,age): #此处为两个下划线 #类的属性 self.name = name self.age = 3 print("init name={},age={}".format(self.name,

Python 类,方法,属性

房东的猫 提交于 2019-12-13 17:50:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 我的第一个Python类 >>> import paramiko >>> import sys >>> import os >>> class TestClass1(): ... tmp = 10 ... def Method1 (self): ... self.tmp = 20 上面的类中定义了属性tmp ,在下面的方法中又对属性进行了修改,验证结果如下: >>> obj1 = TestClass1() # 类先实例化 >>> obj1.tmp # 调用类的属性 10 >>> obj1.Method1() # 调用类的方法 >>> obj1.tmp 20 注意:类中的方法中必须有self,如上面的def Methon1 (self) >>> class TestClass1(): ... tmp = 10 ... def Method1 (self,x=20): # 方法中传参数x,这个x的默认值是20 ... self.tmp = x ... self.tmp2 = x ... ... ... >>> obj1 = TestClass1() >>> obj1.tmp 10 >>> obj1.Method1() >>> obj1.tmp 20 >>> obj1.Method1(30) >>> obj1

Python中类与对象(1)

北慕城南 提交于 2019-12-10 18:22:57
在Python中,使用class关键字定义一个新类。定义类的一般格式为: class 类名 : """类说明""" 类体 在Python中,使用赋值的方式创建类的对象,其格式一般为: 对象名=类名([参数列表]) 对象创建后,可以使用“对象.成员”“对象.方法()”调用该类的成员和方法。 对类的成员访问归纳如下: (1)公有的类成员:在类的方法中通过“类名.类成员”或“self.类成员”访问,在类的外面通过“类名.类成员”或“对象名.类成员”访问。 (2)公有的实例成员:在类的方法中通过“self.类成员”访问,在类的外面通过“对象名.类成员”访问。 (3)私有的类成员:在类的方法中通过“类名.类成员”或“self.类成员”访问,在类的外面不能直接访问。 (4)私有的实例成员:在类的方法中通过“self.类成员”访问,在类的外面不能直接访问。 例: #定义类 class student : def __init__ ( self , sno , name , sex , age ) : self . sno = sno #定义公有成员 self . name = name self . _sex = sex #定义单下画线私有成员 self . __age = age #定义双下画线私有成员 def getage ( self ) return self . __age #创建对象

python(类和对象相关知识)

故事扮演 提交于 2019-12-09 23:23:22
类与对象的关系:对象都是由类产生的。 实例化:由类生产对象的过程。 类的属性分为数据属性(变量)和函数属性(函数,也叫方法)。 类和对象都使用点来访问。 一个简单的类 # -*- coding: utf-8 -*- class car: '这是一个车的类' #类的说明 wheel='橡胶' Engine='发动机' def transport(self): print('---拉货---') def manned(self): print('---载人---') print(car.__dict__) #查看类的属性字典 print(car.wheel) car.transport('1')  查看类的属性 # -*- coding: utf-8 -*- class car: '这是一个车的类' #类的说明 wheel='橡胶' Engine='发动机' def transport(self): print('---拉货---') def manned(self): print('---载人---') print(car.__name__) #查看类名 print(car.__doc__) #查看类的说明文档 print(car.__base__) #查看类的祖先 print(car.__bases__) #查看类的祖先(元组形式) print(car.__module__)

Python 类的继承

≡放荡痞女 提交于 2019-12-09 18:31:39
本质上类的相关用法是面向对象语言非常精彩的地方,自己需要阅读别人的代码,因为现在总是写自己的代码,不借鉴别人的代码是很难获得提高的。 本文未成体系,主要面对的是工程上实际需要解决的问题。 1、子类调用父类函数 情况一:子类不重写__init__()方法,实例化子类后,会自动调用父类的__init__()的方法。 情况二:子类重写__init__()方法且不需要调用父类的方法,则子类直接定义自己的__init__()函数,初始化后将不会调用父类的__init__()的方法。 情况三:子类需要重写__init__()方法,且调用父类的方法: 若此时使用的python语言版本为python3,可使用super关键词。 class Person ( object ) : def __init__ ( self ) : self . name = "Tom" def getName ( self ) : return self . name class Student ( Person ) : def __init__ ( self ) : super ( Student , self ) . __init__ ( ) self . age = 12 def getAge ( self ) : return self . age if __name__ == "__main__" : stu

Python之路,Day06-类

末鹿安然 提交于 2019-12-09 00:38:25
本节内容 1. 面向对象介绍(面向过程&面向对象) 2. 面向对象特性 3.类、方法 1.面向对象介绍 引子: 你现在是一家游戏公司的开发人员,需要你开发一款(”吃鸡“)游戏,你需要思考,至少要有两个角色,一个是人,一个是枪 并且人和装备都有不同的技能,比如人可以跑、走、蹲等,枪可以装子弹,射击等,那么问题来了,怎么描述这种不同角色和他们的功能呢? 回顾我们之前所学的所有的技能,写下来以下的代码来描述这个两个角色: 1 def plant(name,age,sex,job): 2 data = { 3 'name':name, 4 'type':plant_type 5 'image':image, 6 'skill':Pea_bullet. 7 } 8 9 return data 10 11 def zombie(name,dog_type): 12 data = { 13 'name':name, 14 'type':zombie_type 15 } 16 return data View Code 上面两个方法相当于造了两个模子,游戏开始,你得生成一个人和枪的实际对象吧,怎么生成呢? p1 = person("小明",vip,"15级") p2 = person("小华",普通玩家,"10级") b1 = bullet1("手枪",6,"7.62毫米") View Code

通过元类创建一个Python类

对着背影说爱祢 提交于 2019-12-08 15:27:39
通过元类创建一个Python类 最开始学pytohn的时候我们这样定义类 class ClassName: pass 当熟悉了元类的概念之后我们还可以这样创建 ClassName = type("ClassName",(),{}) 当有父类的时候 class ClassName(object): pass 等价于 ClassName = type("ClassName",(ojbect),{}) 当需要初始化值得时候 class ClassName: self.num = 1 pass 此时等价于 ClassName = type("ClassName",(),{"num":1}) 当需要绑定某个函数的时候 class ClassName(self): def print_sth(self): print('xxxxx') pass 等价于 def printSth(self): print('xxxx') ClassName = type("ClassName",(),{"printSth":printSth}) 注:上面不带双引号的ClassName都是类。 来源: https://www.cnblogs.com/jie9527-/p/12005855.html

Python - 派生类初始化父类的__init__构造函数

*爱你&永不变心* 提交于 2019-12-08 14:25:56
【 Python单继承 】 当父类的__init__构造函数中需要对数据进行初始化时, 在其派生的子类的__inti__方法中需要额外调用父类的__init__函数完成父类的初始化; class Base(): def __init__(self,character="%"): self.character = character def show(self): return self.character class Derived(Base): def __init__(self): super().__init__() self.derived_data = 99 def derived_Show(self): print(str(self.derived_data)+super().show()) class A(): def __init__(self): self.X = Derived() if __name__ == "__main__": a = A() a.X.derived_Show() 分析: 派生类如果缺少super().__init__()则报错; 当父类的__init__中没有初始化操作时(如下),派生类中可不比加对父类的初始化( 推荐添加 )。 class Base(): def __init__(self): pass def show(self):

python类之特殊属性和魔术方法

一曲冷凌霜 提交于 2019-12-06 21:19:07
一 python特殊属性 1 总述 属性 含义 _ name_ 类,函数,方法等的名字 _ module_ 类定义所现在的模块名 _ class_ 对象或类所属的类 _ bases_ 类的基类的元素,顺序为他们在基类列表中出现的顺序 _ doc_ 类/函数的文档字符传,如果没有定义则为None _ mro_ 类的mro,class.mro()返回 _ dict_ 类或实例的属性,可写的字典 _ dir_ 返回了类或者对象所有成员列表,dir()函数调用的是_ dir_ (),如果提供了_ dir_ (),则返回属性列表,否则尽可能从__dict__属性中收集信息 2 name 获取类和函数的名字 #!/usr/local/bin/python3.6 #coding:utf-8 class A: pass class B(A): pass def C(): pass print (A.__name__,B.__name__,C.__name__,sep='\n') 3 module 类定义所在的模块名 #!/usr/local/bin/python3.6 #coding:utf-8 class A: pass class B: pass print (A.__module__,B.__module__) #!/usr/local/bin/python3.6 #coding:utf-8