
面向对象
luoganttcc
微信:luogantt2
展开
-
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 · 216 阅读 · 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 · 207 阅读 · 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 · 201 阅读 · 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 · 247 阅读 · 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 · 389 阅读 · 0 评论 -
python 面向对象
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Mon Sep 30 12:40:52 2019 @author: lg """ import pandas as pd import numpy as np import json import time import os import sys import json #import lightgbm as lgb from sklearn.externals impor原创 2020-06-10 15:29:04 · 388 阅读 · 0 评论 -
python
Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案。 __dict__与dir()的区别: dir()是一个函数,返回的是list; __dict__是一个字典,键为属性名,值为属性值; dir()用来寻找一个对象的所有属性,包括__dict__中的属性,__dict__是dir()的子集; class Stud...原创 2018-09-29 17:27:13 · 142 阅读 · 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 · 1156 阅读 · 0 评论 -
python super理解(二)
super() 的入门使用 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用 super 来实现,比如: class Animal(object): def __init__(self, name): self.name = name def greet(self): ...原创 2018-10-07 16:37:50 · 313 阅读 · 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 · 223 阅读 · 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 · 356 阅读 · 0 评论 -
Python类访问限制
如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问 class Student(object): def __init__(self, name, score): self.__name = name self.__scor...原创 2018-10-06 21:28:06 · 277 阅读 · 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 · 212 阅读 · 0 评论 -
python self
class Student(object): def __init__(self, name, score): self.name = name self.score = score st=Student('lg',99) print(st.name) lg原创 2018-06-26 13:44:48 · 226 阅读 · 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 · 533 阅读 · 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 · 238 阅读 · 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 · 249 阅读 · 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 · 344 阅读 · 0 评论