開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
入門 Python 3 (Bill Lubanovic (著)、斎藤 康毅 (監修)、長尾 高弘 (翻訳)、オライリージャパン)の6章(オブジェクトとクラス)、6.15(復習問題)4、5、6、7、8.を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3 print('6-4') class Element: def __init__(self, name, symbol, number): self.name = name self.symbol = symbol self.number = number hydrogen = Element('Hydrogen', 'H', 1) print(hydrogen) print('6-5') d = dict(name='Hydrogen', symbol='H', number=1) print(d) hydrogen = Element(**d) print(hydrogen) print('6-6') class Element: def __init__(self, name, symbol, number): self.name = name self.symbol = symbol self.number = number def dump(self): print( f'name: {self.name}, symbol: {self.symbol}, number: {self.number}') hydrogen = Element(**d) hydrogen.dump() print('6-7') class Element: def __init__(self, name, symbol, number): self.name = name self.symbol = symbol self.number = number def __str__(self): return f'name: {self.name}, symbol: {self.symbol}, number: {self.number}' hydrogen = Element(**d) print(hydrogen) print('6-8') class Element: def __init__(self, name, symbol, number): self.__name = name self.__symbol = symbol self.__number = number @property def name(self): return self.__name @name.setter def name(self, val): self.__name = val @property def symbol(self): return self.__symbol @property def number(self): return self.__number def __str__(self): return f'name: {self.__name}, symbol: {self.__symbol}, number: {self.__number}' hydrogen = Element(**d) print(hydrogen) print(hydrogen.name) hydrogen.name = 'hydrogen' print(hydrogen.name) print(hydrogen) print(hydrogen.symbol) try: hydrogen.symbol = 'h' except Exception as err: print(type(err), err)
入出力結果(Terminal, Jupyter(IPython))
$ ./sample2.py 6-4 <__main__.Element object at 0x104eaed30> 6-5 {'name': 'Hydrogen', 'symbol': 'H', 'number': 1} <__main__.Element object at 0x104eaeda0> 6-6 name: Hydrogen, symbol: H, number: 1 6-7 name: Hydrogen, symbol: H, number: 1 6-8 name: Hydrogen, symbol: H, number: 1 Hydrogen hydrogen name: hydrogen, symbol: H, number: 1 H <class 'AttributeError'> can't set attribute $
0 コメント:
コメントを投稿