面向对象
luoganttcc
微信:luogantt
展开
-
python super 变参数问题(六)
这是Python多层继承的一个特例,祖父,父亲,儿子都有 draw 方法,那么经过多次继承后,如何用一种通用的方法给不同层次的方法传递参数,特别是变长的,不定长度的参数。class Root: def draw(self,**kwds): # the delegation chain stops here print('Root Drawing draw ') assert not hasattr(super(), 'draw')class Sh原创 2020-10-12 16:59:40 · 197 阅读 · 0 评论 -
python super 变参数问题(五)
这是Python多层继承的一个特例,祖父,父亲,儿子都有 draw 方法,那么经过多次继承后,如何对于不同层次的方法传递参数呢,可以看这篇文章python super 理解(四)如何对于不同层次的方法传递参数呢,那么这个例子展现了一种解法,但是这种做法不够通用,在下一篇文章我给出更加通用的玩法def myFun(ff,**kwargs): # print(kwargs) for key, value in kwargs.items(): print ("原创 2020-10-12 16:55:03 · 178 阅读 · 0 评论 -
python super 参数问题
Python’s super() considered super!python3中super()参数意义和用法super().init() # 等同于 super(A, self).init()class A(Base): def __init__(self): super().__init__() # 等同于 super(A, self).__init__() print('A.__init__')...原创 2020-10-11 19:34:57 · 179 阅读 · 0 评论 -
python super 理解(四)
super()单继承可以为做什么呢? 像其他面向对象的语言一样,它允许您在子类中调用超类的方法。这种方法的主要用例是扩展继承方法的功能。#长方形定义class Rectangle: def __init__(self, length, width): self.length = length self.width = width def area(self): return self.length * self.width d转载 2020-10-11 19:11:10 · 213 阅读 · 0 评论 -
super().__init__()理解(三)
D 的类的顺序的是[D,B,A,C]继承父类的的__init__方法在在类A中已经到终点,A.mro()Out[368]: [main.A, object],所以C不再执行class A: def __init__(self): print('A') class B(A): def __init__(self): print('B') super().__init__()class C: def __init__(self): print('C') s.原创 2020-06-18 19:57:51 · 358 阅读 · 0 评论 -
python 面向对象
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Mon Sep 30 12:40:52 2019@author: lg"""import pandas as pdimport numpy as npimport jsonimport timeimport osimport sysimport json#import lightgbm as lgbfrom sklearn.externals impor原创 2020-06-10 15:29:04 · 333 阅读 · 0 评论 -
python
Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案。__dict__与dir()的区别: dir()是一个函数,返回的是list; __dict__是一个字典,键为属性名,值为属性值; dir()用来寻找一个对象的所有属性,包括__dict__中的属性,__dict__是dir()的子集;class Stud...原创 2018-09-29 17:27:13 · 124 阅读 · 0 评论 -
python计数属性类
class Student: count=0 def __init__(self,name,age): self.name=name self.age=age Student.count+=1 # 要使得变量全局有效,就定义为类的属性 def learn(self): print(...原创 2018-09-29 17:10:13 · 1127 阅读 · 0 评论 -
python super理解(二)
super() 的入门使用在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用 super 来实现,比如:class Animal(object): def __init__(self, name): self.name = name def greet(self): ...原创 2018-10-07 16:37:50 · 289 阅读 · 0 评论 -
python super 理解(一)
super的作用是降低多继承时的算法复杂度,和什么父类没有关系class A: def __init__(self): print("Enter A") print("Leave A")class B(A): def __init__(self): print("Enter B") A.__init__(self) print("Leave B"...原创 2018-10-07 16:30:46 · 191 阅读 · 0 评论 -
python2中为什么在进行类定义时最好要加object
class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score)) ...原创 2018-10-06 21:19:54 · 333 阅读 · 0 评论 -
Python类访问限制
如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问class Student(object): def __init__(self, name, score): self.__name = name self.__scor...原创 2018-10-06 21:28:06 · 251 阅读 · 0 评论 -
python 继承
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。class Animal(object): def run(self): print('Animal is running...') #当...原创 2018-10-06 21:37:23 · 190 阅读 · 0 评论 -
python self
class Student(object): def __init__(self, name, score): self.name = name self.score = scorest=Student('lg',99)print(st.name)lg原创 2018-06-26 13:44:48 · 207 阅读 · 0 评论 -
python 面向对象(三)多继承
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Mar 29 09:30:38 2018@author: luogan"""#!/usr/bin/python3#类定义class people: #定义基本属性原创 2018-03-29 09:32:30 · 501 阅读 · 0 评论 -
Python 面向对象(二)类的继承
class people: #定义基本属性 name = '' age = 0 #定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 #定义构造方法 def __init__(self,n,a,w): self.name = n self.age = a self.__we...转载 2018-03-29 09:29:19 · 219 阅读 · 0 评论 -
python 面向对象 (一)
class people: #定义基本属性 name = '' age = 0 #定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 #定义构造方法 def __init__(self,n,a,w): self.name = n self.age = a self.__we...原创 2018-03-28 18:05:23 · 230 阅读 · 0 评论 -
Python 面向对象 编程(一)
class fuc: def multi(self,x): return x*x def greet(self, name): print ('i am',name)lg = fuc()lg.multi(5)Out[46]: 25lg.greet('luogan')i am luogan原创 2017-11-24 15:22:35 · 322 阅读 · 0 评论