日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python?面向對象開發及基本特征_python

作者:BoBo?yeah ? 更新時間: 2022-06-02 編程語言

Python 面向對象

Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。

如果你以前沒有接觸過面向對象的編程語言,那你可能需要先了解一些面向對象語言的一些基本特征,在頭腦里頭形成一個基本的面向對象的概念,這樣有助于你更容易的學習Python的面向對象編程。

接下來我們先來簡單的了解下面向對象的一些基本特征。

面向對象技術簡介

  • 類(Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
  • 類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
  • 數據成員:類變量或者實例變量, 用于處理類及其實例對象的相關的數據。
  • 方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。
  • 局部變量:定義在方法中的變量,只作用于當前實例的類。
  • 實例變量:在類的聲明中,屬性是用變量來表示的。這種變量就稱為實例變量,是在類聲明的內部但是在類的其他成員方法之外聲明的。
  • 繼承:即一個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬"是一個(is-a)"關系(例圖,Dog是一個Animal)。
  • 實例化:創建一個類的實例,類的具體對象。
  • 方法:類中定義的函數。
  • 對象:通過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。

一、實驗要求

1.熟悉python中的面向對象機制;
2.能正確定義并使用類和對象。

二、實驗內容

1 設計一個向量類,實現數據的輸入、輸出、向量的加法、減法、點積、夾角等計算

import math
class Vectors:
    def __init__(self):
        self.x1 = 0
        self.x2 = 0
        self.y1 = 0
        self.y2 = 0
        self.x = self.x2 - self.x1
        self.y = self.y2 - self.y1
    def add(self):
        self.x1 = int(input("input x1 "))
        self.y1 = int(input("input y1 "))
        self.x2 = int(input("input x2 "))
        self.y2 = int(input("input y2 "))
    def out(self):
        print(self.x, self.y)
    def plus(self, a, b):
        self.x = a.x + b.x
        self.y = a.y + b.y
    def sub(self, a, b):
        self.x = a.x - b.x
        self.y = a.y - b.y
    def pointmuti(self, a, b):
        return (a.x * b.x + a.y * b.y)
    def angle(self, a, b):
        a1 = (a.x * a.x + a.y * a.y) ** 0.5
        b1 = (b.x * b.x + b.y * b.y) ** 0.5
        ab = a.x * b.x + a.y * b.y
        return ab // (a1 * b1)
v = Vectors()
a = Vectors()
b = Vectors()
a.add()
b.add()
a.out()
b.out()
v.plus(a, b)
v.out()
v.sub(a, b)
print(v.pointmuti(a, b))
print(math.acos(v.angle(a, b)))

2 設計一個三角形類,實現數據的輸入、輸出、周長、面積的計算

import math
class Triangle:
    def __init__(self):
        a = 0
        b = 0
        c = 0
    def add(self):
        self.a = int(input("輸入第1條邊的長度:"))
        self.b = int(input("輸入第2條邊的長度:"))
        self.c = int(input("輸入第3條邊的長度:"))
        while (self.a + self.b <= self.c):
            print("不符合三角邊的規定,重新輸入!")
            self.a = int(input("輸入第1條邊的長度:"))
            self.b = int(input("輸入第2條邊的長度:"))
            self.c = int(input("輸入第3條邊的長度:"))
    def out(self):
        print(self.a, self.b, self.c)
    def length(self):
        return self.a+self.b+self.c
    def area(self):
        p=self.length()/2
        print(math.sqrt(p*(p-self.a)*(p-self.b)*(p-self.c)))
t = Triangle()
t.add()
t.out()
t.area()

原文鏈接:https://blog.csdn.net/gezongbo/article/details/123828168

欄目分類
最近更新