-6
私はこのコードを持っている:Pythonの - "はAttributeError:『str』はオブジェクトが属性『のTc』を持っていない(Tcは、引数の一つである)
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import newton
R = 8.314e-5 # universal gas constant, m3-bar/K-mol
class Molecule:
"""
Store molecule info here
"""
def __init__(self, name, Tc, Pc, omega):
"""
Pass parameters desribing molecules
"""
#! name
self.name = methane
#! Critical temperature (K)
self.Tc = -83+273
#! Critical pressure (bar)
self.Pc = 45.99
#! Accentric factor
self.omega = 0.011
def preos(molecule, T, P, plotcubic=True, printresults=True):
Tr = T/molecule.Tc # reduced temperature
a = 0.457235 * R**2 * molecule.Tc**2/molecule.Pc
b = 0.0777961 * R * molecule.Tc/molecule.Pc
kappa = 0.37464 + 1.54226 * molecule.omega - 0.26992 * molecule.omega**2
alpha = (1 + kappa * (1 - np.sqrt(Tr)))**2
A = a * alpha * P/R**2/T**2
B = b * P/R/T
私は私が欲しいの引数を持つ関数preos呼び出すとき:この部分について: "はAttributeError: 'str' はオブジェクトが属性 'のTc' がありません":
def preos(molecule, T, P, plotcubic=True, printresults=True):
Tr = T/molecule.Tc # reduced temperature
そして私GUEのエラーメッセージがあります
preos("methane", 160, 10, "true", "true")
それは他の引数(Pcとオメガ)に対して同じエラーを持つでしょう。このエラーは何を意味しますか?
あなたのコードは、その機能を正しく推定するにはあまりにもひどくインデントされています - 恐らく、それを修正して構文エラーなしでコンパイルする必要があります。例えば 'preos()'関数の本体は、isn '全くインデントされていません。 – holdenweb
"問題がある"というのは有効な結果ではありません。このコードの結果として、あなたは何を期待していますか、実際に何をしていますか?私たちはすべてリモートでデバッグしているので、あなたの説明に正確になります。あなたの心を読んだり、画面を見たり、データにアクセスすることはできません。 –
'' methane "'は文字列であり、 'Molecule'ではありません。 – user2357112