# -*- coding: utf-8 -*-
import os
import mycls
def main():
henley = mycls.ITWorkers('PHP', 'Henley', 'web creator', 'henley@livegate.com', 32, 700)
henley.OS = 'Mac'
henley.work(8)
"""
'_' はPEP8にて外部公開していないメソッドの
命名規則として用いることが推奨されている。だが、外部から
呼び出すことは可能
"""
henley._printme('test')
"""
'__' は外部から呼び出すことができない
ただ、この使用方法はPEP8に準拠していない
"""
henley.__printme('test')
if __name__ == "__main__":
main()
mycls.py
# -*- coding: utf-8 -*-
import os
class Workers:
""" This is a class of workers working in the company """
def __init__(self, name, position, email, age, salary):
self.name = name
self.position = position
self.email = email
self.age = age
self.salary = salary
class ITWorkers(Workers):
""" This is a class of IT engineers. """
OS = 'WinNT'
def __init__(self, language, *av):
Workers.__init__(self, *av)
self.language = language
def _printme(self, name):
print 'my name is %s.' % (name)
def __printme(self, name):
print 'my name is %s.' % name
def work(self, n):
""" IT engineers should work. """
if self.position == 'web creator':
w = 'makes web site'
elif self.position == 'server administrator':
w = 'checks the traffic'
elif self.position == 'programmer':
w = 'write program'
print '%s, %s for %d, hours using %s on %s' % (self.name, w, n, self.language, self.OS)
self._printme(self.name)
self.__printme(self.name)
Test....
> python main.py
Henley, makes web site for 8, hours using PHP on Mac
my name is Henley.
my name is Henley.
my name is test.
Traceback (most recent call last):
File "main.py", line 29, in <module>
main()
File "main.py", line 25, in main
henley.__printme('test')
AttributeError: ITWorkers instance has no attribute '__printme'
No comments:
Post a Comment