函數 | 描述 |
---|---|
super([type[, object-or-type]]) | 用為呼叫父類別定義的方法 |
舉例示範如下
class Demo: __x = 0 def __init__(self, i): self.__i = i Demo.__x += 1 def __str__(self): return str(self.__i) def hello(self): print("hello " + self.__str__()) @classmethod def getX(cls): return cls.__x class SubDemo(Demo): def __init__(self, i, j): super().__init__(i) self.__j = j def __str__(self): return super().__str__() + "+" + str(self.__j) a = SubDemo(12, 34) a.hello() print("a.__x =", a.getX()) b = SubDemo(56, 78) b.hello() print("b.__x =", b.getX()) print() print("a.__x =", a.getX()) print("b.__x =", b.getX()) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:cla20.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
第 19 行到第 21 行
def __init__(self, i, j): super().__init__(i) self.__j = j
SubDemo 的 __init__() 定義中,我們利用 super() 呼叫父類別 Demo 的 __init__() ,因此需提供 i 當作參數 (parameter) 。注意,這裡 self.__i 變成父類別的私有屬性。
第 23 行到第 24 行
def __str__(self): return super().__str__() + "+" + str(self.__j)
這裡的 __str__() ,在 return 後的運算式 (expression) 先呼叫 super().__str__() ,因為 self.__i 已經變成父類別 Demo 私有屬性,因此需要先呼叫父類別的 __str__() 。
中英文術語對照 | |
---|---|
函數 | function |
參數 | parameter |
內建函數
- abs(x)
- all(iterable)
- any(iterable)
- ascii(object)
- bin(x)
- bool([x])
- bytearray([source[, encoding[, errors]]])
- bytes([source[, encoding[, errors]]])
- chr(i)
- classmethod(function)
- compile(source, filename, mode, flags=0, dont_inherit=False)
- complex([real[, imag]])
- delattr(object, name)
- dict([arg])
- dir([object])
- divmod(a, b)
- enumerate(iterable, start=0))
- eval(expression, globals=None, locals=None)
- exec(object[, globals[, locals]])
- filter(function, iterable)
- float([x])
- format(value[, format_spec])
- frozenset([iterable])
- getattr(object, name[, default])
- globals()
- hasattr(object, name)
- hash(object)
- help([object])
- hex(x)
- id(object)
- input([prompt])
- int([number | string[, base]])
- isinstance(object, classinfo)
- issubclass(class, classinfo)
- iter(object[, sentinel])
- len(s)
- list([iterable])
- locals()
- map(function, iterable, ...)
- max(iterable[, args...], *[, key])
- memoryview(obj)
- min(iterable[, args...], *[, key])
- next(iterator[, default])
- object()
- oct(x)
- open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
- ord(c)
- pow(x, y[, z])
- print([object, ...], *, sep=' ', end='\n', file=sys.stdout)
- property(fget=None, fset=None, fdel=None, doc=None)
- range([start], stop[, step])
- repr(object)
- reversed(seq)
- round(x[, n])
- set([iterable])
- setattr(object, name, value)
- slice([start], stop[, step])
- sorted(iterable[, key][, reverse])
- staticmethod(function)
- str([object[, encoding[, errors]]])
- sum(iterable[, start])
- super([type[, object-or-type]])
- tuple([iterable])
- type(object)
- vars([object])
- zip(*iterables)
沒有留言:
張貼留言