『壹』 python創建類時無法帶參數
首先,my_dog = Dog()這個實例化方法肯定有問題,your_dog = Dog("hehe",6)這個是正確的,那麼為何實際運行結果是相反的呢?
看這里,這是我修改後的代碼:
classDog():
def__init__(self,name_of_dog,age_of_dog):
self.name=name_of_dog
self.age=age_of_dog
defsetname(self,name):
self.name=name
defsetage(self,age):
self.age=age
my_dog=Dog("haha",5)
my_dog.setname("haha")
my_dog.setage(5)
print("Mydog'snameis",my_dog.name)
print("It's",my_dog.age,"yearsold.")
your_dog=Dog()
運行結果:
def__init__(self,name_of_dog,age_of_dog):
希望可以幫到你。
『貳』 為什麼python的元編程能力沒有ruby強
Ruby的確是比Python更干凈的OOP,這也不奇怪,Ruby根本就是Smalltalk換了點語法而已。
但這個更干凈並不是a.length vs. len(a),名詞在前還是動詞在前的問題,否則OOP也未免太膚淺了。
在Python里,對於a.f()可能是調用a所屬的類的方法f,也可能是調用a的屬性f。這個二義性在metaprogramming時帶來很多不一致和麻煩,比如Python對__xxx__ magic method lookup的特殊規定。