Pythonクラス継承とフォーマット出力
4556 ワード
#!/usr/bin/python # Filename: inherit.py class SchoolMember: '''Represents any school member.''' def __init__(self, name, age): self.name = name self.age = age print('(Initialized SchoolMember: %s)' % self.name) def tell(self): '''Tell my details.''' print('Name:"%s"Age:"%s"'% (self.name, self.age),) class Teacher(SchoolMember): '''Represents a teacher.''' def __init__(self, name, age, salary): SchoolMember.__init__(self, name, age) self.salary = salary print('(Initialized Teacher: %s)'% self.name) def tell(self): SchoolMember.tell(self) print('Salary: "%d"'% self.salary) class Student(SchoolMember): '''Represents a student.''' def __init__(self, name, age, marks): SchoolMember.__init__(self, name, age) self.marks = marks print('(Initialized Student: %s)'% self.name) def tell(self): SchoolMember.tell(self) print('Marks: "%d"'% self.marks) t = Teacher('Mrs. Shrividya',40,30000) s = Student('Swaroop',22,75) members = [t, s] for member in members:
member.tell()# works for both Teachers and Students
継承を使用するには、基本クラスの名前をメタグループとしてクラスを定義するときのクラス名の後に付けます.そして、基本クラスの_init__メソッドはself変数呼び出しに特化しており、オブジェクトの基本クラス部分を初期化できます.この点は非常に重要です.Pythonは基本クラスのconstructorを自動的に呼び出すことはありません.自分で呼び出さなければなりません.
メソッド呼び出しの前にクラス名の接頭辞を付け,self変数および他のパラメータを渡すことも観測した.
SchoolMemberクラスのtellメソッドを使用する場合、TeacherとStudioのインスタンスはSchoolMemberのインスタンスとしてのみ使用されます.
また,この例ではSchoolMemberクラスのtellメソッドではなくサブタイプのtellメソッドを呼び出した.このように理解できるように、Pythonは常に対応するタイプの方法を最初に検索し、この例ではそうである.エクスポート・クラスで対応するメソッドが見つからない場合は、基本クラスごとに検索を開始します.基本クラスは、クラス定義時にメタグループに指定されます.
1つの用語の注釈--継承メタグループに1つ以上のクラスが列挙されている場合、それは多重継承と呼ばれます.
1.出力文字列
2.出力整数のフォーマット
パラメータのフォーマットをサポートし、C言語のprintfと似ています.
3.フォーマット出力16進、10進、8進整数
4.出力浮動小数点数のフォーマット(float)
5.出力浮動小数点数のフォーマット(float)
6.出力リスト(List)
出力リスト
辞書の出力
>>> d = {1:'A',2:'B',3:'C',4:'D'} >>> print(d) {1: 'A', 2: 'B', 3: 'C', 4: 'D'}
7.自動改行
printは自動的に行末にリターンを加え、リターンを必要としない場合はprint文の最後にカンマを追加するだけで、「その動作を変更できます.
または、次の関数を直接使用して出力します.
member.tell()# works for both Teachers and Students
継承を使用するには、基本クラスの名前をメタグループとしてクラスを定義するときのクラス名の後に付けます.そして、基本クラスの_init__メソッドはself変数呼び出しに特化しており、オブジェクトの基本クラス部分を初期化できます.この点は非常に重要です.Pythonは基本クラスのconstructorを自動的に呼び出すことはありません.自分で呼び出さなければなりません.
メソッド呼び出しの前にクラス名の接頭辞を付け,self変数および他のパラメータを渡すことも観測した.
SchoolMemberクラスのtellメソッドを使用する場合、TeacherとStudioのインスタンスはSchoolMemberのインスタンスとしてのみ使用されます.
また,この例ではSchoolMemberクラスのtellメソッドではなくサブタイプのtellメソッドを呼び出した.このように理解できるように、Pythonは常に対応するタイプの方法を最初に検索し、この例ではそうである.エクスポート・クラスで対応するメソッドが見つからない場合は、基本クラスごとに検索を開始します.基本クラスは、クラス定義時にメタグループに指定されます.
1つの用語の注釈--継承メタグループに1つ以上のクラスが列挙されている場合、それは多重継承と呼ばれます.
1.出力文字列
>>> strHello = 'Hello World'
>>> print (strHello)
Hello World
2.出力整数のフォーマット
パラメータのフォーマットをサポートし、C言語のprintfと似ています.
>>> strHello = "the length of (%s) is %d" %('Hello World',len('Hello World'))
>>> print (strHello)
the length of (Hello World) is 11
3.フォーマット出力16進、10進、8進整数
#%x --- hex
#%d --- dec
#%o --- oct
>>> nHex = 0xFF
>>> print("nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex))
nHex = ff,nDec = 255,nOct = 377
4.出力浮動小数点数のフォーマット(float)
import math
>>> print('PI=%f'%math.pi)
PI=3.141593
>>> print ("PI = %10.3f" % math.pi)
PI = 3.142
>>> print ("PI = %-10.3f" % math.pi)
PI = 3.142
>>> print ("PI = %06d" % int(math.pi))
PI = 000003
5.出力浮動小数点数のフォーマット(float)
>>> precise = 3
>>> print ("%.3s " % ("python"))
pyt
>>> precise = 4
>>> print ("%.*s" % (4,"python"))
pyth
>>> print ("%10.3s " % ("python"))
pyt
6.出力リスト(List)
出力リスト
>>> lst = [1,2,3,4,'python']
>>> print (lst)
[1, 2, 3, 4, 'python']
辞書の出力
>>> d = {1:'A',2:'B',3:'C',4:'D'} >>> print(d) {1: 'A', 2: 'B', 3: 'C', 4: 'D'}
7.自動改行
printは自動的に行末にリターンを加え、リターンを必要としない場合はprint文の最後にカンマを追加するだけで、「その動作を変更できます.
>>> for i in range(0,6):
print (i,)
0
1
2
3
4
5
または、次の関数を直接使用して出力します.
>>> import sys
>>> sys.stdout.write('Hello World')
Hello World