クラスとオブジェクト、クラスの継承、クラスの派生、クラスの組合せ、マルチステート
5717 ワード
6.18-6.19自己総括
オブジェクト向けプログラミング
1.クラスとオブジェクト
pythonにはまずクラスがあり、オブジェクト、クラス、オブジェクトがあります.クラスはオブジェクトの同じ特徴と同じ方法をまとめてから、クラスに基づいてオブジェクトを生成します.このオブジェクトはクラスの特徴と方法を持っています.
1.クラスの名前
2.オブジェクトの検索順序
3.生成したオブジェクトの値変更
2.クラスの継承
1.親、子
継承は新しいクラスを作成する方法で、新しいクラスを子クラス、継承されたクラスを親クラスと呼びます.
2.書き方の継承
3.検索順
3.クラスの派生
親と子の基礎の上で、子の再親の基礎の上でもっと多くの特徴が必要な時私達が導入した派生
1.親が1人しかいない場合
2.複数の親がいる場合
4.クラスの組み合わせ
主にクラスのメソッドによって組み合わせられ,メソッド内にはクラス名が伝達される.
5.マルチステート
1.定義
多態とは、一つの事物に多様な形態があることを指し、(一つの抽象類には複数のサブクラスがあるため、多態の概念は継承に依存する)シーケンスデータ型には、文字列、リスト、メタグループ の様々な形態があります.動物には様々な形態がある:人、犬、豚 2.使用例
3.注意事項
オブジェクト向けプログラミング
1.クラスとオブジェクト
pythonにはまずクラスがあり、オブジェクト、クラス、オブジェクトがあります.クラスはオブジェクトの同じ特徴と同じ方法をまとめてから、クラスに基づいてオブジェクトを生成します.このオブジェクトはクラスの特徴と方法を持っています.
1.クラスの名前
class :#
name = a #
def __init__(self): self # , , __init__
pass
def func():#func .
pass
= ()
2.オブジェクトの検索順序
# , , ,
# .
class a:
name = 'sb'
def __init__(self,name):
self.name = name
b = a('2b')
print(b.name)
# 2b
#
class a:
name = 'sb'
def __init__(self,name):
self.xx = name
b = a('2b')
print(b.name)
# sb
3.生成したオブジェクトの値変更
. ,
2.クラスの継承
1.親、子
継承は新しいクラスを作成する方法で、新しいクラスを子クラス、継承されたクラスを親クラスと呼びます.
2.書き方の継承
class fu:
print('from fu')
class son(fu): # () ,
pass
a = son()
print(a)
#from fu
3.検索順
# , , , , , .
#
3.クラスの派生
親と子の基礎の上で、子の再親の基礎の上でもっと多くの特徴が必要な時私達が導入した派生
1.親が1人しかいない場合
class fu:
def __init__(self,name,age,money):
self.name = name
self.age = age
self.money = money
#
#
class son(fu):
def __init__(self,name,age,money,car):
super().__init__(name,age,money)
self.car = car
son_1 =son(1,2,3,4)
print(son_1.car)
#
'''
super() , ( )
super().__init__( self )
super super( ,self), python2 , python3 super()
'''
class son(fu):
def __init__(self,name,age,money,car):
super(son,self).__init__(name,age,money)
self.car = car
son_1 =son(1,2,3,4)
print(son_1.car)
2.複数の親がいる場合
class FuOne:
def __init__(self,name,age):
self.name = name
self.age = age
class FuTwo:
def __init__(self,money):
self.money = money
class Son(FuOne,FuTwo): #
def __init__(self,name,age,money):
# super(Son, self).__init__(naem,age) FuOne.__init__(FuOne,name,age)
#super , , ,
FuOne.__init__(FuOne,name,age)
FuTwo.__init__(FuTwo,money)
son = Son(1,2,3)
print(son.money)
#
class FuOne:
print('123')
def __init__(self,name,age):
self.name = name
self.age = age
class FuTwo:
print('123')
def __init__(self,money):
self.money = money
class Son(FuOne,FuTwo): # , ,
pass
'''
123
123
'''
4.クラスの組み合わせ
主にクラスのメソッドによって組み合わせられ,メソッド内にはクラス名が伝達される.
# :
#
class People:
def __init__(self, name, gender):
self.name = name
self.gender = gender
def eat(self):
print(f'{self.name} ')
class Student(People):
def __init__(self, student_id, name, gender):
self.student_id = student_id
super(Student, self).__init__(name, gender)
def choose_course(self, course): # python
self.course = course # # , / / 。
print(f'{self.name} {course.name} ')
class Teacher(People):
def __init__(self, level, name, gender):
self.level = level
super(Teacher, self).__init__(name, gender)
def scored(self, student, course, score):
print(f' {self.name} {student.name} {course.name} {score}')
class Course:
def __init__(self, name, price):
self.name = name
self.price = price
class Admin(People):
def create_course(self, name, price):
course = Course(name, price)
print(f' {self.name} {name}')
return course
#
# python = Course('Python', '8888')
# linux = Course('Linux', '6666')
#
zhubajie = Student('01', 'zhubajie', 'male')
sunwukong = Student('02', 'sunwukong', 'male')
#
nick = Teacher('1', 'nick', 'male')
tank = Teacher('2', 'tank', 'female')
#
egon = Admin('egon', 'male')
#
# 1.
python = egon.create_course('python', '8888')
print(python.__dict__)
linux = egon.create_course('linux', '6666')
print(linux.__dict__)
# 2.
zhubajie.choose_course(python)
# 3.
nick.scored(zhubajie,python,'0')
5.マルチステート
1.定義
多態とは、一つの事物に多様な形態があることを指し、(一つの抽象類には複数のサブクラスがあるため、多態の概念は継承に依存する)
import abc
class Animal(metaclass=abc.ABCMeta): # :
@abc.abstractmethod # , @abc.abstractmethod
def talk(self):
raise AttributeError(' ')
class People(Animal): # :
def talk(self):
print('say hello')
class Dog(Animal): # :
def talk(self):
print('say wangwang')
class Pig(Animal): # :
def talk(self):
print('say aoao')
peo2 = People()
pig2 = Pig()
d2 = Dog()
peo2.talk()
pig2.talk()
d2.talk()
3.注意事項
:
, 。 : , ( )。 , 。 , , , 。