8.類別
# Attribute references class MyClass: var = 123 def method(self): return "hello world" # Instantiation my_object = MyClass() # 用 . 來訪問物件的屬性或方法 print(my_object.var) # 123 print(my_object.method()) # hello world
init myself
# no arguments class MyClass: def __init__(self): print("do nothing") my_object = MyClass() # do nothing
變數初始化
# with arguments class MyClass: def __init__(self, var1, var2): self.var1 = var1 self.var2 = var2 my_object = MyClass(123, 456) print(my_object.var1) # 123 print(my_object.var2) # 456
Example
class Person: bmi = 0.0 height = 0.0 weight = 0 def __init__(self): pass def ask_person_info(self): self.height = float(input("What is your height? (meter) : ")) self.weight = int(input("What is your weight? (kg) : ")) def cal_BMI(self): self.bmi = round((self.weight / (self.height ** 2)), 2) print("Your BMI is " + str(self.bmi))
Test7
Q1. 寫一個 Class, 包含一個變數(str1)以及兩個函式(set_string 和 print_string). set_string 接受一個字串參數,賦值給 str1。 print_string 印出 str1 的大寫字串 hint: 先宣告一個成員變數,再透過上述兩個函式對該變數做操作。
class Test7: def __init__(self): self.str1 = "" def set_string(self,str1): self.str1=str1 def print_string(self): print(self.str1.upper()) myClass=Test7() myClass.set_string('hello world') myClass.print_string()