開発環境
- 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 コメント:
コメントを投稿